{
  "metadata" : {
    "name" : "JetBrains / intellij-ui-test-robot",
    "description" : "The library allows you to write and execute UI tests among IntelliJ IDEA. You can test your Plugin.",
    "tooltip" : "",
    "logoLink" : "https://avatars.githubusercontent.com/JetBrains",
    "links" : [ {
      "label" : "GitHub Repo",
      "href" : "https://github.com/JetBrains/intellij-ui-test-robot.git"
    } ]
  },
  "metricsList" : {
    "metrics" : [ {
      "id" : "TOTAL_NUMBER_OF_FILES",
      "value" : 179,
      "description" : "Total number of files in the source folder"
    }, {
      "id" : "NUMBER_OF_FILES_MAIN",
      "value" : 134,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_MAIN",
      "value" : 9242,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_MAIN_EXT_KT",
      "value" : 116,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_MAIN_EXT_KT",
      "value" : 7454,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_MAIN_EXT_TS",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_MAIN_EXT_TS",
      "value" : 1092,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_MAIN_EXT_KTS",
      "value" : 8,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_MAIN_EXT_KTS",
      "value" : 346,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_MAIN_EXT_JS",
      "value" : 3,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_MAIN_EXT_JS",
      "value" : 257,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_MAIN_EXT_CSS",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_MAIN_EXT_CSS",
      "value" : 48,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_MAIN_EXT_XML",
      "value" : 5,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_MAIN_EXT_XML",
      "value" : 45,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_TEST",
      "value" : 8,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_TEST",
      "value" : 249,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_TEST_EXT_KT",
      "value" : 2,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_TEST_EXT_KT",
      "value" : 74,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_TEST_EXT_JAVA",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_TEST_EXT_JAVA",
      "value" : 64,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_TEST_EXT_GRADLE",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_TEST_EXT_GRADLE",
      "value" : 58,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_TEST_EXT_XML",
      "value" : 4,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_TEST_EXT_XML",
      "value" : 53,
      "description" : null
    }, {
      "id" : "TEST_VS_MAIN_LINES_OF_CODE_PERCENTAGE",
      "value" : 2.69,
      "description" : "Test / main code ratio"
    }, {
      "id" : "NUMBER_OF_FILES_GENERATED",
      "value" : 0,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_GENERATED",
      "value" : 0,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_BUILD_AND_DEPLOYMENT",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_BUILD_AND_DEPLOYMENT",
      "value" : 70,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_BUILD_AND_DEPLOYMENT_EXT_BAT",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_BUILD_AND_DEPLOYMENT_EXT_BAT",
      "value" : 70,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_OTHER",
      "value" : 18,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_OTHER",
      "value" : 1059,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_OTHER_EXT_KT",
      "value" : 9,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_OTHER_EXT_KT",
      "value" : 478,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_OTHER_EXT_MD",
      "value" : 3,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_OTHER_EXT_MD",
      "value" : 326,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_OTHER_EXT_JAVA",
      "value" : 5,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_OTHER_EXT_JAVA",
      "value" : 252,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_OTHER_EXT_PROPERTIES",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_OTHER_EXT_PROPERTIES",
      "value" : 3,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_ROOT",
      "value" : 2,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_ROOT",
      "value" : 73,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_ROOT_EXT_KTS",
      "value" : 2,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_ROOT_EXT_KTS",
      "value" : 73,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_ROBOT_SERVER_PLUGIN",
      "value" : 9,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_ROBOT_SERVER_PLUGIN",
      "value" : 785,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_ROBOT_SERVER_PLUGIN_EXT_KT",
      "value" : 3,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_ROBOT_SERVER_PLUGIN_EXT_KT",
      "value" : 399,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_ROBOT_SERVER_PLUGIN_EXT_JS",
      "value" : 3,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_ROBOT_SERVER_PLUGIN_EXT_JS",
      "value" : 257,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_ROBOT_SERVER_PLUGIN_EXT_KTS",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_ROBOT_SERVER_PLUGIN_EXT_KTS",
      "value" : 76,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_ROBOT_SERVER_PLUGIN_EXT_CSS",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_ROBOT_SERVER_PLUGIN_EXT_CSS",
      "value" : 48,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_ROBOT_SERVER_PLUGIN_EXT_XML",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_ROBOT_SERVER_PLUGIN_EXT_XML",
      "value" : 5,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_TEST_RECORDER",
      "value" : 24,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_TEST_RECORDER",
      "value" : 1430,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_TEST_RECORDER_EXT_KT",
      "value" : 22,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_TEST_RECORDER_EXT_KT",
      "value" : 1378,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_TEST_RECORDER_EXT_KTS",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_TEST_RECORDER_EXT_KTS",
      "value" : 42,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_TEST_RECORDER_EXT_XML",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_TEST_RECORDER_EXT_XML",
      "value" : 10,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_REMOTE_FIXTURES",
      "value" : 26,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_REMOTE_FIXTURES",
      "value" : 1742,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_REMOTE_FIXTURES_EXT_KT",
      "value" : 24,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_REMOTE_FIXTURES_EXT_KT",
      "value" : 1692,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_REMOTE_FIXTURES_EXT_KTS",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_REMOTE_FIXTURES_EXT_KTS",
      "value" : 40,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_REMOTE_FIXTURES_EXT_XML",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_REMOTE_FIXTURES_EXT_XML",
      "value" : 10,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_IDE_LAUNCHER",
      "value" : 6,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_IDE_LAUNCHER",
      "value" : 442,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_IDE_LAUNCHER_EXT_KT",
      "value" : 5,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_IDE_LAUNCHER_EXT_KT",
      "value" : 411,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_IDE_LAUNCHER_EXT_KTS",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_IDE_LAUNCHER_EXT_KTS",
      "value" : 31,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_ROBOT_SERVER_CORE",
      "value" : 11,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_ROBOT_SERVER_CORE",
      "value" : 1249,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_ROBOT_SERVER_CORE_EXT_KT",
      "value" : 9,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_ROBOT_SERVER_CORE_EXT_KT",
      "value" : 1192,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_ROBOT_SERVER_CORE_EXT_KTS",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_ROBOT_SERVER_CORE_EXT_KTS",
      "value" : 47,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_ROBOT_SERVER_CORE_EXT_XML",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_ROBOT_SERVER_CORE_EXT_XML",
      "value" : 10,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_REMOTE_ROBOT",
      "value" : 56,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_REMOTE_ROBOT",
      "value" : 3521,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_REMOTE_ROBOT_EXT_KT",
      "value" : 53,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_REMOTE_ROBOT_EXT_KT",
      "value" : 2382,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_REMOTE_ROBOT_EXT_TS",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_REMOTE_ROBOT_EXT_TS",
      "value" : 1092,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_REMOTE_ROBOT_EXT_KTS",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_REMOTE_ROBOT_EXT_KTS",
      "value" : 37,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_DECOMPOSITION_PRIMARY_REMOTE_ROBOT_EXT_XML",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_DECOMPOSITION_PRIMARY_REMOTE_ROBOT_EXT_XML",
      "value" : 10,
      "description" : null
    }, {
      "id" : "NUMBER_OF_DEPENDENCY_LINKS_DECOMPOSITION_PRIMARY",
      "value" : 0,
      "description" : "Number of anchor dependencies"
    }, {
      "id" : "NUMBER_OF_DEPENDENCIES_DECOMPOSITION_PRIMARY",
      "value" : 0,
      "description" : null
    }, {
      "id" : "NUMBER_OF_PLACES_WITH_CYCLIC_DEPENDENCIES_DECOMPOSITION_PRIMARY",
      "value" : 0,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_CONCERN_GENERAL_TODOS",
      "value" : 0,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_CONCERN_GENERAL_TODOS",
      "value" : 0,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_CONCERN_GENERAL_UNCLASSIFIED",
      "value" : 134,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_CONCERN_GENERAL_UNCLASSIFIED",
      "value" : 9242,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_CONCERN_GENERAL_UNCLASSIFIED_EXT_KT",
      "value" : 116,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_CONCERN_GENERAL_UNCLASSIFIED_EXT_KT",
      "value" : 7454,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_CONCERN_GENERAL_UNCLASSIFIED_EXT_TS",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_CONCERN_GENERAL_UNCLASSIFIED_EXT_TS",
      "value" : 1092,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_CONCERN_GENERAL_UNCLASSIFIED_EXT_KTS",
      "value" : 8,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_CONCERN_GENERAL_UNCLASSIFIED_EXT_KTS",
      "value" : 346,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_CONCERN_GENERAL_UNCLASSIFIED_EXT_JS",
      "value" : 3,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_CONCERN_GENERAL_UNCLASSIFIED_EXT_JS",
      "value" : 257,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_CONCERN_GENERAL_UNCLASSIFIED_EXT_CSS",
      "value" : 1,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_CONCERN_GENERAL_UNCLASSIFIED_EXT_CSS",
      "value" : 48,
      "description" : null
    }, {
      "id" : "NUMBER_OF_FILES_CONCERN_GENERAL_UNCLASSIFIED_EXT_XML",
      "value" : 5,
      "description" : null
    }, {
      "id" : "LINES_OF_CODE_CONCERN_GENERAL_UNCLASSIFIED_EXT_XML",
      "value" : 45,
      "description" : null
    }, {
      "id" : "NEGLIGIBLE_RISK_FILE_SIZE_COUNT",
      "value" : 108,
      "description" : "Number of  files with 100 or less lines of code"
    }, {
      "id" : "LOW_RISK_FILE_SIZE_COUNT",
      "value" : 15,
      "description" : "Number of  files with 100 to 200 lines of code"
    }, {
      "id" : "MEDIUM_RISK_FILE_SIZE_COUNT",
      "value" : 10,
      "description" : "Number of  files with 200 to 500 lines of code"
    }, {
      "id" : "HIGH_RISK_FILE_SIZE_COUNT",
      "value" : 0,
      "description" : "Number of  files with 500 to 1000 lines of code"
    }, {
      "id" : "VERY_HIGH_RISK_FILE_SIZE_COUNT",
      "value" : 1,
      "description" : "Number of  files with more than 1000 lines of code"
    }, {
      "id" : "NEGLIGIBLE_RISK_FILE_SIZE_LOC",
      "value" : 3348,
      "description" : "Lines of code in  files with 100 or less lines of code"
    }, {
      "id" : "LOW_RISK_FILE_SIZE_LOC",
      "value" : 2098,
      "description" : "Lines of code in  files with 100 to 200 lines of code"
    }, {
      "id" : "MEDIUM_RISK_FILE_SIZE_LOC",
      "value" : 2704,
      "description" : "Lines of code in  files with 200 to 500 lines of code"
    }, {
      "id" : "HIGH_RISK_FILE_SIZE_LOC",
      "value" : 0,
      "description" : "Lines of code in  files with 500 to 1000 lines of code"
    }, {
      "id" : "VERY_HIGH_RISK_FILE_SIZE_LOC",
      "value" : 1092,
      "description" : "Lines of code in  files with more than 1000 lines of code"
    }, {
      "id" : "NUMBER_OF_UNITS",
      "value" : 400,
      "description" : "Number of units"
    }, {
      "id" : "LINES_OF_CODE_IN_UNITS",
      "value" : 2946,
      "description" : "Lines of code in units"
    }, {
      "id" : "LINES_OF_CODE_OUTSIDE_UNITS",
      "value" : 6296,
      "description" : "Lines of code in units"
    }, {
      "id" : "UNIT_SIZE_NEGLIGIBLE_RISK_LOC",
      "value" : 1494,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 50.712830957230146,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_NEGLIGIBLE_RISK_COUNT",
      "value" : 336,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_LOW_RISK_LOC",
      "value" : 662,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_LOW_RISK_PERCENTAGE",
      "value" : 22.47114731839783,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_LOW_RISK_COUNT",
      "value" : 45,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_MEDIUM_RISK_LOC",
      "value" : 460,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_MEDIUM_RISK_PERCENTAGE",
      "value" : 15.614392396469789,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_MEDIUM_RISK_COUNT",
      "value" : 17,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_HIGH_RISK_LOC",
      "value" : 52,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_HIGH_RISK_PERCENTAGE",
      "value" : 1.7651052274270196,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_HIGH_RISK_COUNT",
      "value" : 1,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_VERY_HIGH_RISK_LOC",
      "value" : 278,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 9.436524100475221,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_VERY_HIGH_RISK_COUNT",
      "value" : 1,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ROBOT_SERVER_PLUGIN_NEGLIGIBLE_RISK_LOC",
      "value" : 73,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ROBOT_SERVER_PLUGIN_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 13.468634686346864,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ROBOT_SERVER_PLUGIN_NEGLIGIBLE_RISK_COUNT",
      "value" : 13,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ROBOT_SERVER_PLUGIN_LOW_RISK_LOC",
      "value" : 61,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ROBOT_SERVER_PLUGIN_LOW_RISK_PERCENTAGE",
      "value" : 11.254612546125461,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ROBOT_SERVER_PLUGIN_LOW_RISK_COUNT",
      "value" : 4,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ROBOT_SERVER_PLUGIN_MEDIUM_RISK_LOC",
      "value" : 130,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ROBOT_SERVER_PLUGIN_MEDIUM_RISK_PERCENTAGE",
      "value" : 23.985239852398525,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ROBOT_SERVER_PLUGIN_MEDIUM_RISK_COUNT",
      "value" : 5,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ROBOT_SERVER_PLUGIN_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ROBOT_SERVER_PLUGIN_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ROBOT_SERVER_PLUGIN_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ROBOT_SERVER_PLUGIN_VERY_HIGH_RISK_LOC",
      "value" : 278,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ROBOT_SERVER_PLUGIN_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 51.291512915129154,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ROBOT_SERVER_PLUGIN_VERY_HIGH_RISK_COUNT",
      "value" : 1,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_TEST_RECORDER_NEGLIGIBLE_RISK_LOC",
      "value" : 135,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_TEST_RECORDER_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 48.73646209386282,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_TEST_RECORDER_NEGLIGIBLE_RISK_COUNT",
      "value" : 30,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_TEST_RECORDER_LOW_RISK_LOC",
      "value" : 45,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_TEST_RECORDER_LOW_RISK_PERCENTAGE",
      "value" : 16.24548736462094,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_TEST_RECORDER_LOW_RISK_COUNT",
      "value" : 3,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_TEST_RECORDER_MEDIUM_RISK_LOC",
      "value" : 97,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_TEST_RECORDER_MEDIUM_RISK_PERCENTAGE",
      "value" : 35.018050541516246,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_TEST_RECORDER_MEDIUM_RISK_COUNT",
      "value" : 3,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_TEST_RECORDER_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_TEST_RECORDER_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_TEST_RECORDER_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_TEST_RECORDER_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_TEST_RECORDER_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_TEST_RECORDER_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_REMOTE_FIXTURES_NEGLIGIBLE_RISK_LOC",
      "value" : 208,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_REMOTE_FIXTURES_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 51.74129353233831,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_REMOTE_FIXTURES_NEGLIGIBLE_RISK_COUNT",
      "value" : 49,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_REMOTE_FIXTURES_LOW_RISK_LOC",
      "value" : 116,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_REMOTE_FIXTURES_LOW_RISK_PERCENTAGE",
      "value" : 28.855721393034827,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_REMOTE_FIXTURES_LOW_RISK_COUNT",
      "value" : 8,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_REMOTE_FIXTURES_MEDIUM_RISK_LOC",
      "value" : 78,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_REMOTE_FIXTURES_MEDIUM_RISK_PERCENTAGE",
      "value" : 19.402985074626866,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_REMOTE_FIXTURES_MEDIUM_RISK_COUNT",
      "value" : 3,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_REMOTE_FIXTURES_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_REMOTE_FIXTURES_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_REMOTE_FIXTURES_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_REMOTE_FIXTURES_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_REMOTE_FIXTURES_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_REMOTE_FIXTURES_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_IDE_LAUNCHER_NEGLIGIBLE_RISK_LOC",
      "value" : 41,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_IDE_LAUNCHER_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 36.283185840707965,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_IDE_LAUNCHER_NEGLIGIBLE_RISK_COUNT",
      "value" : 7,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_IDE_LAUNCHER_LOW_RISK_LOC",
      "value" : 20,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_IDE_LAUNCHER_LOW_RISK_PERCENTAGE",
      "value" : 17.699115044247787,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_IDE_LAUNCHER_LOW_RISK_COUNT",
      "value" : 1,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_IDE_LAUNCHER_MEDIUM_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_IDE_LAUNCHER_MEDIUM_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_IDE_LAUNCHER_MEDIUM_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_IDE_LAUNCHER_HIGH_RISK_LOC",
      "value" : 52,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_IDE_LAUNCHER_HIGH_RISK_PERCENTAGE",
      "value" : 46.017699115044245,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_IDE_LAUNCHER_HIGH_RISK_COUNT",
      "value" : 1,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_IDE_LAUNCHER_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_IDE_LAUNCHER_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_IDE_LAUNCHER_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ROBOT_SERVER_CORE_NEGLIGIBLE_RISK_LOC",
      "value" : 304,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ROBOT_SERVER_CORE_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 51.52542372881356,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ROBOT_SERVER_CORE_NEGLIGIBLE_RISK_COUNT",
      "value" : 72,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ROBOT_SERVER_CORE_LOW_RISK_LOC",
      "value" : 243,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ROBOT_SERVER_CORE_LOW_RISK_PERCENTAGE",
      "value" : 41.186440677966104,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ROBOT_SERVER_CORE_LOW_RISK_COUNT",
      "value" : 17,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ROBOT_SERVER_CORE_MEDIUM_RISK_LOC",
      "value" : 43,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ROBOT_SERVER_CORE_MEDIUM_RISK_PERCENTAGE",
      "value" : 7.288135593220339,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ROBOT_SERVER_CORE_MEDIUM_RISK_COUNT",
      "value" : 2,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ROBOT_SERVER_CORE_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ROBOT_SERVER_CORE_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ROBOT_SERVER_CORE_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ROBOT_SERVER_CORE_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ROBOT_SERVER_CORE_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_ROBOT_SERVER_CORE_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_REMOTE_ROBOT_NEGLIGIBLE_RISK_LOC",
      "value" : 733,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_REMOTE_ROBOT_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 71.72211350293541,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_REMOTE_ROBOT_NEGLIGIBLE_RISK_COUNT",
      "value" : 165,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_REMOTE_ROBOT_LOW_RISK_LOC",
      "value" : 177,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_REMOTE_ROBOT_LOW_RISK_PERCENTAGE",
      "value" : 17.31898238747554,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_REMOTE_ROBOT_LOW_RISK_COUNT",
      "value" : 12,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_REMOTE_ROBOT_MEDIUM_RISK_LOC",
      "value" : 112,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_REMOTE_ROBOT_MEDIUM_RISK_PERCENTAGE",
      "value" : 10.95890410958904,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_REMOTE_ROBOT_MEDIUM_RISK_COUNT",
      "value" : 4,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_REMOTE_ROBOT_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_REMOTE_ROBOT_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_REMOTE_ROBOT_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_REMOTE_ROBOT_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_REMOTE_ROBOT_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_COMPONENT_REMOTE_ROBOT_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_NEGLIGIBLE_RISK_LOC",
      "value" : 1436,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 53.24434556915091,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_NEGLIGIBLE_RISK_COUNT",
      "value" : 325,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_LOW_RISK_LOC",
      "value" : 601,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_LOW_RISK_PERCENTAGE",
      "value" : 22.28401928068224,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_LOW_RISK_COUNT",
      "value" : 41,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_MEDIUM_RISK_LOC",
      "value" : 330,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_MEDIUM_RISK_PERCENTAGE",
      "value" : 12.235817575083425,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_MEDIUM_RISK_COUNT",
      "value" : 12,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_HIGH_RISK_LOC",
      "value" : 52,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_HIGH_RISK_PERCENTAGE",
      "value" : 1.92806822395254,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_HIGH_RISK_COUNT",
      "value" : 1,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_VERY_HIGH_RISK_LOC",
      "value" : 278,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 10.307749351130886,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_KT_VERY_HIGH_RISK_COUNT",
      "value" : 1,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_JS_NEGLIGIBLE_RISK_LOC",
      "value" : 58,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_JS_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 23.29317269076305,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_JS_NEGLIGIBLE_RISK_COUNT",
      "value" : 11,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_JS_LOW_RISK_LOC",
      "value" : 61,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_JS_LOW_RISK_PERCENTAGE",
      "value" : 24.497991967871485,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_JS_LOW_RISK_COUNT",
      "value" : 4,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_JS_MEDIUM_RISK_LOC",
      "value" : 130,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_JS_MEDIUM_RISK_PERCENTAGE",
      "value" : 52.208835341365464,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_JS_MEDIUM_RISK_COUNT",
      "value" : 5,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_JS_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_JS_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_JS_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_JS_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_JS_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "UNIT_SIZE_EXTENSION_JS_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_NEGLIGIBLE_RISK_LOC",
      "value" : 2794,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 94.84046164290564,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_NEGLIGIBLE_RISK_COUNT",
      "value" : 393,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_LOW_RISK_LOC",
      "value" : 152,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_LOW_RISK_PERCENTAGE",
      "value" : 5.159538357094365,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_LOW_RISK_COUNT",
      "value" : 7,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_MEDIUM_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_MEDIUM_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_MEDIUM_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_HIGH_PLUS_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_HIGH_PLUS_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ROBOT_SERVER_PLUGIN_NEGLIGIBLE_RISK_LOC",
      "value" : 496,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ROBOT_SERVER_PLUGIN_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 91.5129151291513,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ROBOT_SERVER_PLUGIN_NEGLIGIBLE_RISK_COUNT",
      "value" : 21,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ROBOT_SERVER_PLUGIN_LOW_RISK_LOC",
      "value" : 46,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ROBOT_SERVER_PLUGIN_LOW_RISK_PERCENTAGE",
      "value" : 8.487084870848708,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ROBOT_SERVER_PLUGIN_LOW_RISK_COUNT",
      "value" : 2,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ROBOT_SERVER_PLUGIN_MEDIUM_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ROBOT_SERVER_PLUGIN_MEDIUM_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ROBOT_SERVER_PLUGIN_MEDIUM_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ROBOT_SERVER_PLUGIN_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ROBOT_SERVER_PLUGIN_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ROBOT_SERVER_PLUGIN_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ROBOT_SERVER_PLUGIN_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ROBOT_SERVER_PLUGIN_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ROBOT_SERVER_PLUGIN_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_TEST_RECORDER_NEGLIGIBLE_RISK_LOC",
      "value" : 248,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_TEST_RECORDER_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 89.53068592057761,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_TEST_RECORDER_NEGLIGIBLE_RISK_COUNT",
      "value" : 34,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_TEST_RECORDER_LOW_RISK_LOC",
      "value" : 29,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_TEST_RECORDER_LOW_RISK_PERCENTAGE",
      "value" : 10.469314079422382,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_TEST_RECORDER_LOW_RISK_COUNT",
      "value" : 2,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_TEST_RECORDER_MEDIUM_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_TEST_RECORDER_MEDIUM_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_TEST_RECORDER_MEDIUM_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_TEST_RECORDER_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_TEST_RECORDER_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_TEST_RECORDER_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_TEST_RECORDER_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_TEST_RECORDER_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_TEST_RECORDER_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_REMOTE_FIXTURES_NEGLIGIBLE_RISK_LOC",
      "value" : 402,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_REMOTE_FIXTURES_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 100.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_REMOTE_FIXTURES_NEGLIGIBLE_RISK_COUNT",
      "value" : 60,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_REMOTE_FIXTURES_LOW_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_REMOTE_FIXTURES_LOW_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_REMOTE_FIXTURES_LOW_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_REMOTE_FIXTURES_MEDIUM_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_REMOTE_FIXTURES_MEDIUM_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_REMOTE_FIXTURES_MEDIUM_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_REMOTE_FIXTURES_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_REMOTE_FIXTURES_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_REMOTE_FIXTURES_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_REMOTE_FIXTURES_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_REMOTE_FIXTURES_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_REMOTE_FIXTURES_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_IDE_LAUNCHER_NEGLIGIBLE_RISK_LOC",
      "value" : 113,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_IDE_LAUNCHER_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 100.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_IDE_LAUNCHER_NEGLIGIBLE_RISK_COUNT",
      "value" : 9,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_IDE_LAUNCHER_LOW_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_IDE_LAUNCHER_LOW_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_IDE_LAUNCHER_LOW_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_IDE_LAUNCHER_MEDIUM_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_IDE_LAUNCHER_MEDIUM_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_IDE_LAUNCHER_MEDIUM_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_IDE_LAUNCHER_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_IDE_LAUNCHER_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_IDE_LAUNCHER_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_IDE_LAUNCHER_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_IDE_LAUNCHER_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_IDE_LAUNCHER_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ROBOT_SERVER_CORE_NEGLIGIBLE_RISK_LOC",
      "value" : 550,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ROBOT_SERVER_CORE_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 93.22033898305085,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ROBOT_SERVER_CORE_NEGLIGIBLE_RISK_COUNT",
      "value" : 89,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ROBOT_SERVER_CORE_LOW_RISK_LOC",
      "value" : 40,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ROBOT_SERVER_CORE_LOW_RISK_PERCENTAGE",
      "value" : 6.779661016949152,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ROBOT_SERVER_CORE_LOW_RISK_COUNT",
      "value" : 2,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ROBOT_SERVER_CORE_MEDIUM_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ROBOT_SERVER_CORE_MEDIUM_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ROBOT_SERVER_CORE_MEDIUM_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ROBOT_SERVER_CORE_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ROBOT_SERVER_CORE_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ROBOT_SERVER_CORE_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ROBOT_SERVER_CORE_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ROBOT_SERVER_CORE_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_ROBOT_SERVER_CORE_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_REMOTE_ROBOT_NEGLIGIBLE_RISK_LOC",
      "value" : 985,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_REMOTE_ROBOT_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 96.37964774951077,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_REMOTE_ROBOT_NEGLIGIBLE_RISK_COUNT",
      "value" : 180,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_REMOTE_ROBOT_LOW_RISK_LOC",
      "value" : 37,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_REMOTE_ROBOT_LOW_RISK_PERCENTAGE",
      "value" : 3.620352250489237,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_REMOTE_ROBOT_LOW_RISK_COUNT",
      "value" : 1,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_REMOTE_ROBOT_MEDIUM_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_REMOTE_ROBOT_MEDIUM_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_REMOTE_ROBOT_MEDIUM_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_REMOTE_ROBOT_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_REMOTE_ROBOT_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_REMOTE_ROBOT_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_REMOTE_ROBOT_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_REMOTE_ROBOT_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_REMOTE_ROBOT_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_NEGLIGIBLE_RISK_LOC",
      "value" : 2591,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 96.0697070819429,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_NEGLIGIBLE_RISK_COUNT",
      "value" : 375,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_LOW_RISK_LOC",
      "value" : 106,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_LOW_RISK_PERCENTAGE",
      "value" : 3.9302929180571007,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_LOW_RISK_COUNT",
      "value" : 5,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_MEDIUM_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_MEDIUM_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_MEDIUM_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_KT_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_JS_NEGLIGIBLE_RISK_LOC",
      "value" : 203,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_JS_NEGLIGIBLE_RISK_PERCENTAGE",
      "value" : 81.52610441767068,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_JS_NEGLIGIBLE_RISK_COUNT",
      "value" : 18,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_JS_LOW_RISK_LOC",
      "value" : 46,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_JS_LOW_RISK_PERCENTAGE",
      "value" : 18.473895582329316,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_JS_LOW_RISK_COUNT",
      "value" : 2,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_JS_MEDIUM_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_JS_MEDIUM_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_JS_MEDIUM_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_JS_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_JS_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_JS_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_JS_VERY_HIGH_RISK_LOC",
      "value" : 0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_JS_VERY_HIGH_RISK_PERCENTAGE",
      "value" : 0.0,
      "description" : null
    }, {
      "id" : "CONDITIONAL_COMPLEXITY_COMPONENT_JS_VERY_HIGH_RISK_COUNT",
      "value" : 0,
      "description" : null
    }, {
      "id" : "FILE_CHANGE_HISTORY_TOTAL_AGE_DAYS",
      "value" : 1930,
      "description" : "The age of the repository in days"
    }, {
      "id" : "FILE_CHANGE_HISTORY_ACTIVE_DAYS",
      "value" : 205,
      "description" : "The number of days with at least one file change"
    }, {
      "id" : "FILE_CHANGE_HISTORY_WEEKS",
      "value" : 229,
      "description" : "The number of weeks"
    }, {
      "id" : "FILE_CHANGE_HISTORY_ESTIMATED_WORKING_DAYS",
      "value" : 1145,
      "description" : "The number of estimated working days in the period"
    }, {
      "id" : "FILE_AGE_NEGLIGIBLE_RISK_COUNT",
      "value" : 0,
      "description" : "Number of files 1-30 days days old"
    }, {
      "id" : "FILE_AGE_LOW_RISK_COUNT",
      "value" : 0,
      "description" : "Number of files 31-90 days days old"
    }, {
      "id" : "FILE_AGE_MEDIUM_RISK_COUNT",
      "value" : 0,
      "description" : "Number of files 91-180 days days old"
    }, {
      "id" : "FILE_AGE_HIGH_RISK_COUNT",
      "value" : 11,
      "description" : "Number of files 181-365 days days old"
    }, {
      "id" : "FILE_AGE_VERY_HIGH_RISK_COUNT",
      "value" : 123,
      "description" : "Number of files 366+ days days old"
    }, {
      "id" : "FILE_AGE_NEGLIGIBLE_RISK_LOC",
      "value" : 0,
      "description" : "Number of files 1-30 days days old"
    }, {
      "id" : "FILE_AGE_LOW_RISK_LOC",
      "value" : 0,
      "description" : "Number of files 31-90 days days old"
    }, {
      "id" : "FILE_AGE_MEDIUM_RISK_LOC",
      "value" : 0,
      "description" : "Number of files 91-180 days days old"
    }, {
      "id" : "FILE_AGE_HIGH_RISK_LOC",
      "value" : 702,
      "description" : "Number of files 181-365 days days old"
    }, {
      "id" : "FILE_AGE_VERY_HIGH_RISK_LOC",
      "value" : 8540,
      "description" : "Number of files 366+ days days old"
    }, {
      "id" : "NUMBER_OF_CONTRIBUTORS",
      "value" : 20,
      "description" : "Number of contributors"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATES",
      "value" : 40,
      "description" : "Number of duplicates"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_FILES_WITH_DUPLICATES",
      "value" : 19,
      "description" : "Number of files with duplicates"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATED_LINES",
      "value" : 405,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES",
      "value" : 6993,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE",
      "value" : 5.7915057915057915,
      "description" : "Duplication percentage"
    }, {
      "id" : "UNIT_DUPLICATES_COUNT",
      "value" : 0,
      "description" : "Unit duplicates"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATED_LINES_PRIMARY_REMOTE_ROBOT",
      "value" : 148,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES_PRIMARY_REMOTE_ROBOT",
      "value" : 148,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE_PRIMARY_REMOTE_ROBOT",
      "value" : 100.0,
      "description" : "Duplication percentage"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATED_LINES_PRIMARY_ROBOT_SERVER_PLUGIN",
      "value" : 84,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES_PRIMARY_ROBOT_SERVER_PLUGIN",
      "value" : 84,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE_PRIMARY_ROBOT_SERVER_PLUGIN",
      "value" : 100.0,
      "description" : "Duplication percentage"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATED_LINES_PRIMARY_TEST_RECORDER",
      "value" : 35,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES_PRIMARY_TEST_RECORDER",
      "value" : 35,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE_PRIMARY_TEST_RECORDER",
      "value" : 100.0,
      "description" : "Duplication percentage"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATED_LINES_PRIMARY_ROBOT_SERVER_CORE",
      "value" : 67,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES_PRIMARY_ROBOT_SERVER_CORE",
      "value" : 67,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE_PRIMARY_ROBOT_SERVER_CORE",
      "value" : 100.0,
      "description" : "Duplication percentage"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATED_LINES_PRIMARY_REMOTE_FIXTURES",
      "value" : 58,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES_PRIMARY_REMOTE_FIXTURES",
      "value" : 58,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE_PRIMARY_REMOTE_FIXTURES",
      "value" : 100.0,
      "description" : "Duplication percentage"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATED_LINES_PRIMARY_IDE_LAUNCHER",
      "value" : 13,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES_PRIMARY_IDE_LAUNCHER",
      "value" : 13,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE_PRIMARY_IDE_LAUNCHER",
      "value" : 100.0,
      "description" : "Duplication percentage"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATED_LINES_PRIMARY_ROOT",
      "value" : 0,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES_PRIMARY_ROOT",
      "value" : 0,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE_PRIMARY_ROOT",
      "value" : "NaN",
      "description" : "Duplication percentage"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATED_LINES_KT",
      "value" : 322,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES_KT",
      "value" : 5472,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE_KT",
      "value" : 5.8845029239766085,
      "description" : "Duplication percentage"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_DUPLICATED_LINES_KTS",
      "value" : 83,
      "description" : "Number of duplicated lines"
    }, {
      "id" : "DUPLICATION_NUMBER_OF_CLEANED_LINES_KTS",
      "value" : 258,
      "description" : "Number of lines after cleaning for duplication calculations"
    }, {
      "id" : "DUPLICATION_PERCENTAGE_KTS",
      "value" : 32.17054263565891,
      "description" : "Duplication percentage"
    }, {
      "id" : "TOTAL_ANALYSIS_TIME_IN_MILLIS",
      "value" : 1035,
      "description" : "Total analysis time in milliseconds"
    } ]
  },
  "controlResults" : {
    "goalsAnalysisResults" : [ {
      "metricsWithGoal" : {
        "goal" : "Keep the system simple and easy to change",
        "description" : "Aim at keeping the system size modest (less than 200,000 LOC is good), duplication low (less than 5% is good), files small (no files longer than 1000 LOC is good), and units simple (no units with more than 25 decision points is good).",
        "controls" : [ {
          "metric" : "LINES_OF_CODE_MAIN",
          "description" : "Total number of lines of main code",
          "desiredRange" : {
            "min" : "0",
            "max" : "200000",
            "tolerance" : "20000"
          }
        }, {
          "metric" : "DUPLICATION_PERCENTAGE",
          "description" : "System duplication",
          "desiredRange" : {
            "min" : "0",
            "max" : "5",
            "tolerance" : "1"
          }
        }, {
          "metric" : "VERY_HIGH_RISK_FILE_SIZE_COUNT",
          "description" : "The number of very large files",
          "desiredRange" : {
            "min" : "0",
            "max" : "0",
            "tolerance" : "1"
          }
        }, {
          "metric" : "CONDITIONAL_COMPLEXITY_VERY_HIGH_RISK_COUNT",
          "description" : "Number of very complex units",
          "desiredRange" : {
            "min" : "0",
            "max" : "0",
            "tolerance" : "1"
          }
        } ]
      },
      "controlStatuses" : [ {
        "control" : {
          "metric" : "LINES_OF_CODE_MAIN",
          "description" : "Total number of lines of main code",
          "desiredRange" : {
            "min" : "0",
            "max" : "200000",
            "tolerance" : "20000"
          }
        },
        "metric" : {
          "id" : "LINES_OF_CODE_MAIN",
          "value" : 9242,
          "description" : null
        },
        "status" : "OK"
      }, {
        "control" : {
          "metric" : "DUPLICATION_PERCENTAGE",
          "description" : "System duplication",
          "desiredRange" : {
            "min" : "0",
            "max" : "5",
            "tolerance" : "1"
          }
        },
        "metric" : {
          "id" : "DUPLICATION_PERCENTAGE",
          "value" : 5.7915057915057915,
          "description" : "Duplication percentage"
        },
        "status" : "TOLERANT"
      }, {
        "control" : {
          "metric" : "VERY_HIGH_RISK_FILE_SIZE_COUNT",
          "description" : "The number of very large files",
          "desiredRange" : {
            "min" : "0",
            "max" : "0",
            "tolerance" : "1"
          }
        },
        "metric" : {
          "id" : "VERY_HIGH_RISK_FILE_SIZE_COUNT",
          "value" : 1,
          "description" : "Number of  files with more than 1000 lines of code"
        },
        "status" : "TOLERANT"
      }, {
        "control" : {
          "metric" : "CONDITIONAL_COMPLEXITY_VERY_HIGH_RISK_COUNT",
          "description" : "Number of very complex units",
          "desiredRange" : {
            "min" : "0",
            "max" : "0",
            "tolerance" : "1"
          }
        },
        "metric" : {
          "id" : "CONDITIONAL_COMPLEXITY_VERY_HIGH_RISK_COUNT",
          "value" : 0,
          "description" : null
        },
        "status" : "OK"
      } ]
    } ]
  },
  "totalNumberOfFilesInScope" : 179,
  "mainAspectAnalysisResults" : {
    "name" : null,
    "filesCount" : 134,
    "linesOfCode" : 9242,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.kt",
      "value" : 116,
      "description" : [ ]
    }, {
      "name" : "  *.ts",
      "value" : 1,
      "description" : [ ]
    }, {
      "name" : "  *.kts",
      "value" : 8,
      "description" : [ ]
    }, {
      "name" : "  *.js",
      "value" : 3,
      "description" : [ ]
    }, {
      "name" : "  *.css",
      "value" : 1,
      "description" : [ ]
    }, {
      "name" : "  *.xml",
      "value" : 5,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.kt",
      "value" : 7454,
      "description" : [ ]
    }, {
      "name" : "  *.ts",
      "value" : 1092,
      "description" : [ ]
    }, {
      "name" : "  *.kts",
      "value" : 346,
      "description" : [ ]
    }, {
      "name" : "  *.js",
      "value" : 257,
      "description" : [ ]
    }, {
      "name" : "  *.css",
      "value" : 48,
      "description" : [ ]
    }, {
      "name" : "  *.xml",
      "value" : 45,
      "description" : [ ]
    } ]
  },
  "testAspectAnalysisResults" : {
    "name" : null,
    "filesCount" : 8,
    "linesOfCode" : 249,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.kt",
      "value" : 2,
      "description" : [ ]
    }, {
      "name" : "  *.java",
      "value" : 1,
      "description" : [ ]
    }, {
      "name" : "  *.gradle",
      "value" : 1,
      "description" : [ ]
    }, {
      "name" : "  *.xml",
      "value" : 4,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.kt",
      "value" : 74,
      "description" : [ ]
    }, {
      "name" : "  *.java",
      "value" : 64,
      "description" : [ ]
    }, {
      "name" : "  *.gradle",
      "value" : 58,
      "description" : [ ]
    }, {
      "name" : "  *.xml",
      "value" : 53,
      "description" : [ ]
    } ]
  },
  "generatedAspectAnalysisResults" : {
    "name" : null,
    "filesCount" : 0,
    "linesOfCode" : 0,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ ],
    "linesOfCodePerExtension" : [ ]
  },
  "buildAndDeployAspectAnalysisResults" : {
    "name" : null,
    "filesCount" : 1,
    "linesOfCode" : 70,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.bat",
      "value" : 1,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.bat",
      "value" : 70,
      "description" : [ ]
    } ]
  },
  "otherAspectAnalysisResults" : {
    "name" : null,
    "filesCount" : 18,
    "linesOfCode" : 1059,
    "numberOfRegexLineMatches" : 0,
    "fileCountPerExtension" : [ {
      "name" : "  *.kt",
      "value" : 9,
      "description" : [ ]
    }, {
      "name" : "  *.md",
      "value" : 3,
      "description" : [ ]
    }, {
      "name" : "  *.java",
      "value" : 5,
      "description" : [ ]
    }, {
      "name" : "  *.properties",
      "value" : 1,
      "description" : [ ]
    } ],
    "linesOfCodePerExtension" : [ {
      "name" : "  *.kt",
      "value" : 478,
      "description" : [ ]
    }, {
      "name" : "  *.md",
      "value" : 326,
      "description" : [ ]
    }, {
      "name" : "  *.java",
      "value" : 252,
      "description" : [ ]
    }, {
      "name" : "  *.properties",
      "value" : 3,
      "description" : [ ]
    } ]
  },
  "logicalDecompositionsAnalysisResults" : [ {
    "key" : "primary",
    "components" : [ {
      "name" : "ROOT",
      "filesCount" : 2,
      "linesOfCode" : 73,
      "numberOfRegexLineMatches" : 0,
      "fileCountPerExtension" : [ {
        "name" : "  *.kts",
        "value" : 2,
        "description" : [ ]
      } ],
      "linesOfCodePerExtension" : [ {
        "name" : "  *.kts",
        "value" : 73,
        "description" : [ ]
      } ]
    }, {
      "name" : "robot-server-plugin",
      "filesCount" : 9,
      "linesOfCode" : 785,
      "numberOfRegexLineMatches" : 0,
      "fileCountPerExtension" : [ {
        "name" : "  *.kt",
        "value" : 3,
        "description" : [ ]
      }, {
        "name" : "  *.js",
        "value" : 3,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 1,
        "description" : [ ]
      }, {
        "name" : "  *.css",
        "value" : 1,
        "description" : [ ]
      }, {
        "name" : "  *.xml",
        "value" : 1,
        "description" : [ ]
      } ],
      "linesOfCodePerExtension" : [ {
        "name" : "  *.kt",
        "value" : 399,
        "description" : [ ]
      }, {
        "name" : "  *.js",
        "value" : 257,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 76,
        "description" : [ ]
      }, {
        "name" : "  *.css",
        "value" : 48,
        "description" : [ ]
      }, {
        "name" : "  *.xml",
        "value" : 5,
        "description" : [ ]
      } ]
    }, {
      "name" : "test-recorder",
      "filesCount" : 24,
      "linesOfCode" : 1430,
      "numberOfRegexLineMatches" : 0,
      "fileCountPerExtension" : [ {
        "name" : "  *.kt",
        "value" : 22,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 1,
        "description" : [ ]
      }, {
        "name" : "  *.xml",
        "value" : 1,
        "description" : [ ]
      } ],
      "linesOfCodePerExtension" : [ {
        "name" : "  *.kt",
        "value" : 1378,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 42,
        "description" : [ ]
      }, {
        "name" : "  *.xml",
        "value" : 10,
        "description" : [ ]
      } ]
    }, {
      "name" : "remote-fixtures",
      "filesCount" : 26,
      "linesOfCode" : 1742,
      "numberOfRegexLineMatches" : 0,
      "fileCountPerExtension" : [ {
        "name" : "  *.kt",
        "value" : 24,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 1,
        "description" : [ ]
      }, {
        "name" : "  *.xml",
        "value" : 1,
        "description" : [ ]
      } ],
      "linesOfCodePerExtension" : [ {
        "name" : "  *.kt",
        "value" : 1692,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 40,
        "description" : [ ]
      }, {
        "name" : "  *.xml",
        "value" : 10,
        "description" : [ ]
      } ]
    }, {
      "name" : "ide-launcher",
      "filesCount" : 6,
      "linesOfCode" : 442,
      "numberOfRegexLineMatches" : 0,
      "fileCountPerExtension" : [ {
        "name" : "  *.kt",
        "value" : 5,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 1,
        "description" : [ ]
      } ],
      "linesOfCodePerExtension" : [ {
        "name" : "  *.kt",
        "value" : 411,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 31,
        "description" : [ ]
      } ]
    }, {
      "name" : "robot-server-core",
      "filesCount" : 11,
      "linesOfCode" : 1249,
      "numberOfRegexLineMatches" : 0,
      "fileCountPerExtension" : [ {
        "name" : "  *.kt",
        "value" : 9,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 1,
        "description" : [ ]
      }, {
        "name" : "  *.xml",
        "value" : 1,
        "description" : [ ]
      } ],
      "linesOfCodePerExtension" : [ {
        "name" : "  *.kt",
        "value" : 1192,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 47,
        "description" : [ ]
      }, {
        "name" : "  *.xml",
        "value" : 10,
        "description" : [ ]
      } ]
    }, {
      "name" : "remote-robot",
      "filesCount" : 56,
      "linesOfCode" : 3521,
      "numberOfRegexLineMatches" : 0,
      "fileCountPerExtension" : [ {
        "name" : "  *.kt",
        "value" : 53,
        "description" : [ ]
      }, {
        "name" : "  *.ts",
        "value" : 1,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 1,
        "description" : [ ]
      }, {
        "name" : "  *.xml",
        "value" : 1,
        "description" : [ ]
      } ],
      "linesOfCodePerExtension" : [ {
        "name" : "  *.kt",
        "value" : 2382,
        "description" : [ ]
      }, {
        "name" : "  *.ts",
        "value" : 1092,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 37,
        "description" : [ ]
      }, {
        "name" : "  *.xml",
        "value" : 10,
        "description" : [ ]
      } ]
    } ],
    "componentDependencies" : [ ],
    "componentDependenciesErrors" : [ ],
    "logicalDecomposition" : {
      "name" : "primary",
      "scope" : "main",
      "filters" : [ ],
      "componentsFolderDepth" : 1,
      "minComponentsCount" : 0,
      "components" : [ {
        "name" : "ROOT",
        "sourceFileFilters" : [ {
          "pathPattern" : "./.*",
          "contentPattern" : "",
          "exception" : false,
          "note" : ""
        }, {
          "pathPattern" : "./robot-server-plugin/.*",
          "contentPattern" : "",
          "exception" : true,
          "note" : ""
        }, {
          "pathPattern" : "./test-recorder/.*",
          "contentPattern" : "",
          "exception" : true,
          "note" : ""
        }, {
          "pathPattern" : "./remote-fixtures/.*",
          "contentPattern" : "",
          "exception" : true,
          "note" : ""
        }, {
          "pathPattern" : "./ide-launcher/.*",
          "contentPattern" : "",
          "exception" : true,
          "note" : ""
        }, {
          "pathPattern" : "./robot-server-core/.*",
          "contentPattern" : "",
          "exception" : true,
          "note" : ""
        }, {
          "pathPattern" : "./remote-robot/.*",
          "contentPattern" : "",
          "exception" : true,
          "note" : ""
        } ],
        "files" : [ ]
      }, {
        "name" : "robot-server-plugin",
        "sourceFileFilters" : [ {
          "pathPattern" : "./robot-server-plugin/.*",
          "contentPattern" : "",
          "exception" : false,
          "note" : ""
        } ],
        "files" : [ ]
      }, {
        "name" : "test-recorder",
        "sourceFileFilters" : [ {
          "pathPattern" : "./test-recorder/.*",
          "contentPattern" : "",
          "exception" : false,
          "note" : ""
        } ],
        "files" : [ ]
      }, {
        "name" : "remote-fixtures",
        "sourceFileFilters" : [ {
          "pathPattern" : "./remote-fixtures/.*",
          "contentPattern" : "",
          "exception" : false,
          "note" : ""
        } ],
        "files" : [ ]
      }, {
        "name" : "ide-launcher",
        "sourceFileFilters" : [ {
          "pathPattern" : "./ide-launcher/.*",
          "contentPattern" : "",
          "exception" : false,
          "note" : ""
        } ],
        "files" : [ ]
      }, {
        "name" : "robot-server-core",
        "sourceFileFilters" : [ {
          "pathPattern" : "./robot-server-core/.*",
          "contentPattern" : "",
          "exception" : false,
          "note" : ""
        } ],
        "files" : [ ]
      }, {
        "name" : "remote-robot",
        "sourceFileFilters" : [ {
          "pathPattern" : "./remote-robot/.*",
          "contentPattern" : "",
          "exception" : false,
          "note" : ""
        } ],
        "files" : [ ]
      } ],
      "metaComponents" : [ ],
      "groups" : [ ],
      "includeRemainingFiles" : true,
      "dependenciesFinder" : {
        "useBuiltInDependencyFinders" : true,
        "rules" : [ ],
        "metaRules" : [ ]
      },
      "renderingOptions" : {
        "orientation" : "TB",
        "maxNumberOfDependencies" : 100,
        "renderComponentsWithoutDependencies" : true,
        "renderIndirectDependencies" : false,
        "renderInternalIndirectDependencies" : false,
        "reverseDirection" : false
      },
      "includeExternalComponents" : true,
      "dependencyLinkThreshold" : 1,
      "duplicationLinkThreshold" : 50,
      "temporalLinkThreshold" : 1,
      "maxSearchDepthLines" : 200
    },
    "fileCountPerComponent" : [ {
      "name" : "ROOT",
      "value" : 2,
      "description" : [ ]
    }, {
      "name" : "robot-server-plugin",
      "value" : 9,
      "description" : [ ]
    }, {
      "name" : "test-recorder",
      "value" : 24,
      "description" : [ ]
    }, {
      "name" : "remote-fixtures",
      "value" : 26,
      "description" : [ ]
    }, {
      "name" : "ide-launcher",
      "value" : 6,
      "description" : [ ]
    }, {
      "name" : "robot-server-core",
      "value" : 11,
      "description" : [ ]
    }, {
      "name" : "remote-robot",
      "value" : 56,
      "description" : [ ]
    } ],
    "linesOfCodePerComponent" : [ {
      "name" : "ROOT",
      "value" : 73,
      "description" : [ ]
    }, {
      "name" : "robot-server-plugin",
      "value" : 785,
      "description" : [ ]
    }, {
      "name" : "test-recorder",
      "value" : 1430,
      "description" : [ ]
    }, {
      "name" : "remote-fixtures",
      "value" : 1742,
      "description" : [ ]
    }, {
      "name" : "ide-launcher",
      "value" : 442,
      "description" : [ ]
    }, {
      "name" : "robot-server-core",
      "value" : 1249,
      "description" : [ ]
    }, {
      "name" : "remote-robot",
      "value" : 3521,
      "description" : [ ]
    } ]
  } ],
  "concernsAnalysisResults" : [ {
    "key" : "general",
    "concerns" : [ {
      "name" : "TODOs",
      "filesCount" : 0,
      "linesOfCode" : 0,
      "numberOfRegexLineMatches" : 0,
      "fileCountPerExtension" : [ ],
      "linesOfCodePerExtension" : [ ]
    }, {
      "name" : "Unclassified",
      "filesCount" : 134,
      "linesOfCode" : 9242,
      "numberOfRegexLineMatches" : 0,
      "fileCountPerExtension" : [ {
        "name" : "  *.kt",
        "value" : 116,
        "description" : [ ]
      }, {
        "name" : "  *.ts",
        "value" : 1,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 8,
        "description" : [ ]
      }, {
        "name" : "  *.js",
        "value" : 3,
        "description" : [ ]
      }, {
        "name" : "  *.css",
        "value" : 1,
        "description" : [ ]
      }, {
        "name" : "  *.xml",
        "value" : 5,
        "description" : [ ]
      } ],
      "linesOfCodePerExtension" : [ {
        "name" : "  *.kt",
        "value" : 7454,
        "description" : [ ]
      }, {
        "name" : "  *.ts",
        "value" : 1092,
        "description" : [ ]
      }, {
        "name" : "  *.kts",
        "value" : 346,
        "description" : [ ]
      }, {
        "name" : "  *.js",
        "value" : 257,
        "description" : [ ]
      }, {
        "name" : "  *.css",
        "value" : 48,
        "description" : [ ]
      }, {
        "name" : "  *.xml",
        "value" : 45,
        "description" : [ ]
      } ]
    } ],
    "concernsGroup" : null,
    "fileCountPerConcern" : [ {
      "name" : "TODOs",
      "value" : 0,
      "description" : [ ]
    }, {
      "name" : "Unclassified",
      "value" : 134,
      "description" : [ ]
    } ],
    "linesOfCodePerConcern" : [ {
      "name" : "TODOs",
      "value" : 0,
      "description" : [ ]
    }, {
      "name" : "Unclassified",
      "value" : 9242,
      "description" : [ ]
    } ]
  } ],
  "foundTags" : [ {
    "tagRule" : {
      "tag" : "github actions",
      "color" : "#7CB9E8",
      "pathPatterns" : [ "(|.*/)[.]github[/]workflows[/].*" ],
      "excludePathPatterns" : [ ]
    },
    "evidence" : ".github/workflows/prepareDraftRelease.yml\n.github/workflows/publishMaster.yml\n.github/workflows/publishRelease.yml\n.github/workflows/runLauncherTest.yml\n.github/workflows/runTest.yml\n.github/workflows/testBranch.yml"
  }, {
    "tagRule" : {
      "tag" : "gradle",
      "color" : "#B9D9EB",
      "pathPatterns" : [ "(|.*/)build[.]gradle" ],
      "excludePathPatterns" : [ ]
    },
    "evidence" : "ui-test-example/build.gradle"
  }, {
    "tagRule" : {
      "tag" : "dependabot",
      "color" : "#B9D9EB",
      "pathPatterns" : [ "(|.*/)dependabot[.]ya?ml" ],
      "excludePathPatterns" : [ ]
    },
    "evidence" : ".github/dependabot.yml"
  } ],
  "filesAnalysisResults" : {
    "overallFileSizeDistribution" : {
      "key" : "",
      "lowRiskThreshold" : 100,
      "mediumRiskThreshold" : 200,
      "highRiskThreshold" : 500,
      "veryHighRiskThreshold" : 1000,
      "negligibleRiskValue" : 3348,
      "lowRiskValue" : 2098,
      "mediumRiskValue" : 2704,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 1092,
      "lowRiskCount" : 15,
      "negligibleRiskCount" : 108,
      "mediumRiskCount" : 10,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 1,
      "negligibleRiskLabel" : "1-100",
      "lowRiskLabel" : "101-200",
      "mediumRiskLabel" : "201-500",
      "highRiskLabel" : "501-1000",
      "veryHighRiskLabel" : "1001+",
      "negligibleRiskPercentage" : 36.22592512443194,
      "veryHighRiskPercentage" : 11.815624323739451,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 29.25773642068816,
      "lowRiskPercentage" : 22.700714131140447,
      "totalValue" : 9242,
      "totalCount" : 134
    },
    "fileSizeDistributionPerExtension" : [ {
      "key" : "kts",
      "lowRiskThreshold" : 100,
      "mediumRiskThreshold" : 200,
      "highRiskThreshold" : 500,
      "veryHighRiskThreshold" : 1000,
      "negligibleRiskValue" : 346,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 8,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-100",
      "lowRiskLabel" : "101-200",
      "mediumRiskLabel" : "201-500",
      "highRiskLabel" : "501-1000",
      "veryHighRiskLabel" : "1001+",
      "negligibleRiskPercentage" : 100.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 346,
      "totalCount" : 8
    }, {
      "key" : "kt",
      "lowRiskThreshold" : 100,
      "mediumRiskThreshold" : 200,
      "highRiskThreshold" : 500,
      "veryHighRiskThreshold" : 1000,
      "negligibleRiskValue" : 2879,
      "lowRiskValue" : 2098,
      "mediumRiskValue" : 2477,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 15,
      "negligibleRiskCount" : 92,
      "mediumRiskCount" : 9,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-100",
      "lowRiskLabel" : "101-200",
      "mediumRiskLabel" : "201-500",
      "highRiskLabel" : "501-1000",
      "veryHighRiskLabel" : "1001+",
      "negligibleRiskPercentage" : 38.623557821304,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 33.230480279044805,
      "lowRiskPercentage" : 28.145961899651194,
      "totalValue" : 7454,
      "totalCount" : 116
    }, {
      "key" : "xml",
      "lowRiskThreshold" : 100,
      "mediumRiskThreshold" : 200,
      "highRiskThreshold" : 500,
      "veryHighRiskThreshold" : 1000,
      "negligibleRiskValue" : 45,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 5,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-100",
      "lowRiskLabel" : "101-200",
      "mediumRiskLabel" : "201-500",
      "highRiskLabel" : "501-1000",
      "veryHighRiskLabel" : "1001+",
      "negligibleRiskPercentage" : 100.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 45,
      "totalCount" : 5
    }, {
      "key" : "js",
      "lowRiskThreshold" : 100,
      "mediumRiskThreshold" : 200,
      "highRiskThreshold" : 500,
      "veryHighRiskThreshold" : 1000,
      "negligibleRiskValue" : 30,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 227,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 2,
      "mediumRiskCount" : 1,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-100",
      "lowRiskLabel" : "101-200",
      "mediumRiskLabel" : "201-500",
      "highRiskLabel" : "501-1000",
      "veryHighRiskLabel" : "1001+",
      "negligibleRiskPercentage" : 11.673151750972762,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 88.32684824902724,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 257,
      "totalCount" : 3
    }, {
      "key" : "css",
      "lowRiskThreshold" : 100,
      "mediumRiskThreshold" : 200,
      "highRiskThreshold" : 500,
      "veryHighRiskThreshold" : 1000,
      "negligibleRiskValue" : 48,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 1,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-100",
      "lowRiskLabel" : "101-200",
      "mediumRiskLabel" : "201-500",
      "highRiskLabel" : "501-1000",
      "veryHighRiskLabel" : "1001+",
      "negligibleRiskPercentage" : 100.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 48,
      "totalCount" : 1
    }, {
      "key" : "ts",
      "lowRiskThreshold" : 100,
      "mediumRiskThreshold" : 200,
      "highRiskThreshold" : 500,
      "veryHighRiskThreshold" : 1000,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 1092,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 1,
      "negligibleRiskLabel" : "1-100",
      "lowRiskLabel" : "101-200",
      "mediumRiskLabel" : "201-500",
      "highRiskLabel" : "501-1000",
      "veryHighRiskLabel" : "1001+",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 100.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 1092,
      "totalCount" : 1
    } ],
    "fileSizeDistributionPerLogicalDecomposition" : [ {
      "name" : "primary",
      "fileSizeDistributionPerComponent" : [ {
        "key" : "ROOT",
        "lowRiskThreshold" : 100,
        "mediumRiskThreshold" : 200,
        "highRiskThreshold" : 500,
        "veryHighRiskThreshold" : 1000,
        "negligibleRiskValue" : 73,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 2,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-100",
        "lowRiskLabel" : "101-200",
        "mediumRiskLabel" : "201-500",
        "highRiskLabel" : "501-1000",
        "veryHighRiskLabel" : "1001+",
        "negligibleRiskPercentage" : 100.0,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 73,
        "totalCount" : 2
      }, {
        "key" : "robot-server-plugin",
        "lowRiskThreshold" : 100,
        "mediumRiskThreshold" : 200,
        "highRiskThreshold" : 500,
        "veryHighRiskThreshold" : 1000,
        "negligibleRiskValue" : 190,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 595,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 7,
        "mediumRiskCount" : 2,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-100",
        "lowRiskLabel" : "101-200",
        "mediumRiskLabel" : "201-500",
        "highRiskLabel" : "501-1000",
        "veryHighRiskLabel" : "1001+",
        "negligibleRiskPercentage" : 24.203821656050955,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 75.79617834394904,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 785,
        "totalCount" : 9
      }, {
        "key" : "test-recorder",
        "lowRiskThreshold" : 100,
        "mediumRiskThreshold" : 200,
        "highRiskThreshold" : 500,
        "veryHighRiskThreshold" : 1000,
        "negligibleRiskValue" : 583,
        "lowRiskValue" : 640,
        "mediumRiskValue" : 207,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 4,
        "negligibleRiskCount" : 19,
        "mediumRiskCount" : 1,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-100",
        "lowRiskLabel" : "101-200",
        "mediumRiskLabel" : "201-500",
        "highRiskLabel" : "501-1000",
        "veryHighRiskLabel" : "1001+",
        "negligibleRiskPercentage" : 40.76923076923077,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 14.475524475524475,
        "lowRiskPercentage" : 44.75524475524475,
        "totalValue" : 1430,
        "totalCount" : 24
      }, {
        "key" : "remote-fixtures",
        "lowRiskThreshold" : 100,
        "mediumRiskThreshold" : 200,
        "highRiskThreshold" : 500,
        "veryHighRiskThreshold" : 1000,
        "negligibleRiskValue" : 845,
        "lowRiskValue" : 428,
        "mediumRiskValue" : 469,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 3,
        "negligibleRiskCount" : 21,
        "mediumRiskCount" : 2,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-100",
        "lowRiskLabel" : "101-200",
        "mediumRiskLabel" : "201-500",
        "highRiskLabel" : "501-1000",
        "veryHighRiskLabel" : "1001+",
        "negligibleRiskPercentage" : 48.507462686567166,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 26.923076923076923,
        "lowRiskPercentage" : 24.569460390355914,
        "totalValue" : 1742,
        "totalCount" : 26
      }, {
        "key" : "ide-launcher",
        "lowRiskThreshold" : 100,
        "mediumRiskThreshold" : 200,
        "highRiskThreshold" : 500,
        "veryHighRiskThreshold" : 1000,
        "negligibleRiskValue" : 86,
        "lowRiskValue" : 356,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 3,
        "negligibleRiskCount" : 3,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-100",
        "lowRiskLabel" : "101-200",
        "mediumRiskLabel" : "201-500",
        "highRiskLabel" : "501-1000",
        "veryHighRiskLabel" : "1001+",
        "negligibleRiskPercentage" : 19.457013574660632,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 80.54298642533936,
        "totalValue" : 442,
        "totalCount" : 6
      }, {
        "key" : "robot-server-core",
        "lowRiskThreshold" : 100,
        "mediumRiskThreshold" : 200,
        "highRiskThreshold" : 500,
        "veryHighRiskThreshold" : 1000,
        "negligibleRiskValue" : 284,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 965,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 8,
        "mediumRiskCount" : 3,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-100",
        "lowRiskLabel" : "101-200",
        "mediumRiskLabel" : "201-500",
        "highRiskLabel" : "501-1000",
        "veryHighRiskLabel" : "1001+",
        "negligibleRiskPercentage" : 22.738190552441953,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 77.26180944755805,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 1249,
        "totalCount" : 11
      }, {
        "key" : "remote-robot",
        "lowRiskThreshold" : 100,
        "mediumRiskThreshold" : 200,
        "highRiskThreshold" : 500,
        "veryHighRiskThreshold" : 1000,
        "negligibleRiskValue" : 1287,
        "lowRiskValue" : 674,
        "mediumRiskValue" : 468,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 1092,
        "lowRiskCount" : 5,
        "negligibleRiskCount" : 48,
        "mediumRiskCount" : 2,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 1,
        "negligibleRiskLabel" : "1-100",
        "lowRiskLabel" : "101-200",
        "mediumRiskLabel" : "201-500",
        "highRiskLabel" : "501-1000",
        "veryHighRiskLabel" : "1001+",
        "negligibleRiskPercentage" : 36.55211587617154,
        "veryHighRiskPercentage" : 31.013916500994036,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 13.291678500426015,
        "lowRiskPercentage" : 19.142289122408407,
        "totalValue" : 3521,
        "totalCount" : 56
      } ]
    } ],
    "longestFiles" : [ {
      "relativePath" : "remote-robot/src/main/resources/api/ContextApi.ts",
      "extension" : "ts",
      "linesOfCode" : 1092,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
      "extension" : "kt",
      "linesOfCode" : 368,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 278
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
      "extension" : "kt",
      "linesOfCode" : 355,
      "unitsCount" : 26,
      "unitsMcCabeIndexSum" : 49,
      "linesOfCodeInUnits" : 298
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/robot/SmoothRobot.kt",
      "extension" : "kt",
      "linesOfCode" : 334,
      "unitsCount" : 52,
      "unitsMcCabeIndexSum" : 58,
      "linesOfCodeInUnits" : 208
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/xpath/XpathDataModelCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 276,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 20
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JCefBrowserFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 241,
      "unitsCount" : 7,
      "unitsMcCabeIndexSum" : 8,
      "linesOfCodeInUnits" : 24
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/RemoteRobot.kt",
      "extension" : "kt",
      "linesOfCode" : 239,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 4
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/ExtractorGraphics2d.kt",
      "extension" : "kt",
      "linesOfCode" : 229,
      "unitsCount" : 61,
      "unitsMcCabeIndexSum" : 61,
      "linesOfCodeInUnits" : 214
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/TextEditorFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 228,
      "unitsCount" : 9,
      "unitsMcCabeIndexSum" : 14,
      "linesOfCodeInUnits" : 122
    }, {
      "relativePath" : "robot-server-plugin/src/main/resources/static/xpathEditor.js",
      "extension" : "js",
      "linesOfCode" : 227,
      "unitsCount" : 17,
      "unitsMcCabeIndexSum" : 52,
      "linesOfCodeInUnits" : 221
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/RecordUITestFrame.kt",
      "extension" : "kt",
      "linesOfCode" : 207,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 7,
      "linesOfCodeInUnits" : 13
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/LocatorGenerator.kt",
      "extension" : "kt",
      "linesOfCode" : 186,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 4
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/JavaScriptApi.kt",
      "extension" : "kt",
      "linesOfCode" : 179,
      "unitsCount" : 16,
      "unitsMcCabeIndexSum" : 16,
      "linesOfCodeInUnits" : 143
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/RobotEventService.kt",
      "extension" : "kt",
      "linesOfCode" : 169,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 32
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JTreeFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 167,
      "unitsCount" : 7,
      "unitsMcCabeIndexSum" : 8,
      "linesOfCodeInUnits" : 51
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/CommonContainerFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 157,
      "unitsCount" : 5,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 11
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/dialogs/CreateNewMouseEventStepDialogWrapper.kt",
      "extension" : "kt",
      "linesOfCode" : 147,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 48
    }, {
      "relativePath" : "ide-launcher/src/main/kotlin/com/intellij/remoterobot/launcher/IdeLauncher.kt",
      "extension" : "kt",
      "linesOfCode" : 140,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/dialogs/CreateNewCommonStepDialogWrapper.kt",
      "extension" : "kt",
      "linesOfCode" : 138,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 47
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/utils/RepeatUtils.kt",
      "extension" : "kt",
      "linesOfCode" : 131,
      "unitsCount" : 7,
      "unitsMcCabeIndexSum" : 18,
      "linesOfCodeInUnits" : 102
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/Fixture.kt",
      "extension" : "kt",
      "linesOfCode" : 130,
      "unitsCount" : 10,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 55
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/server/CellReaders.kt",
      "extension" : "kt",
      "linesOfCode" : 122,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "ide-launcher/src/main/kotlin/com/intellij/remoterobot/launcher/IdeDownloader.kt",
      "extension" : "kt",
      "linesOfCode" : 113,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 13
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/client/IdeRobotClient.kt",
      "extension" : "kt",
      "linesOfCode" : 112,
      "unitsCount" : 20,
      "unitsMcCabeIndexSum" : 20,
      "linesOfCodeInUnits" : 60
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/steps/CommonSteps.kt",
      "extension" : "kt",
      "linesOfCode" : 104,
      "unitsCount" : 7,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 63
    }, {
      "relativePath" : "ide-launcher/src/main/kotlin/com/intellij/remoterobot/launcher/utils.kt",
      "extension" : "kt",
      "linesOfCode" : 103,
      "unitsCount" : 5,
      "unitsMcCabeIndexSum" : 7,
      "linesOfCodeInUnits" : 84
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/RecordUITestModel.kt",
      "extension" : "kt",
      "linesOfCode" : 100,
      "unitsCount" : 5,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 14
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/utils/KeyboardUtils.kt",
      "extension" : "kt",
      "linesOfCode" : 93,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/DataExtractorGraphics2d.kt",
      "extension" : "kt",
      "linesOfCode" : 89,
      "unitsCount" : 9,
      "unitsMcCabeIndexSum" : 13,
      "linesOfCodeInUnits" : 50
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/utils/Locators.kt",
      "extension" : "kt",
      "linesOfCode" : 82,
      "unitsCount" : 8,
      "unitsMcCabeIndexSum" : 8,
      "linesOfCodeInUnits" : 67
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/js/RhinoJavaScriptExecutor.kt",
      "extension" : "kt",
      "linesOfCode" : 78,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JMenuBarFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 77,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "robot-server-plugin/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 76,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/ComponentFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 72,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 6
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/SearchContext.kt",
      "extension" : "kt",
      "linesOfCode" : 67,
      "unitsCount" : 6,
      "unitsMcCabeIndexSum" : 7,
      "linesOfCodeInUnits" : 46
    }, {
      "relativePath" : "build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 65,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/LambdaApi.kt",
      "extension" : "kt",
      "linesOfCode" : 65,
      "unitsCount" : 6,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 39
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/LambdaLoader.kt",
      "extension" : "kt",
      "linesOfCode" : 64,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 21
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JPopupMenuFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 63,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/data/ObjectContainer.kt",
      "extension" : "kt",
      "linesOfCode" : 63,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/TextToKeyCache.kt",
      "extension" : "kt",
      "linesOfCode" : 61,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 12,
      "linesOfCodeInUnits" : 49
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/encryption/AesEncryptor.kt",
      "extension" : "kt",
      "linesOfCode" : 60,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 36
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/common/CommonStepModel.kt",
      "extension" : "kt",
      "linesOfCode" : 59,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/utils/RelativeLocators.kt",
      "extension" : "kt",
      "linesOfCode" : 57,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/ComboBoxFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 56,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 6
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/CellReaderGraphics2d.kt",
      "extension" : "kt",
      "linesOfCode" : 52,
      "unitsCount" : 9,
      "unitsMcCabeIndexSum" : 13,
      "linesOfCodeInUnits" : 42
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/mouse/MouseClickOperation.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/client/IdeRobotApi.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "robot-server-plugin/src/main/resources/static/styles.css",
      "extension" : "css",
      "linesOfCode" : 48,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "robot-server-core/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 47,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    } ],
    "filesWithMostUnits" : [ {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/ExtractorGraphics2d.kt",
      "extension" : "kt",
      "linesOfCode" : 229,
      "unitsCount" : 61,
      "unitsMcCabeIndexSum" : 61,
      "linesOfCodeInUnits" : 214
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/robot/SmoothRobot.kt",
      "extension" : "kt",
      "linesOfCode" : 334,
      "unitsCount" : 52,
      "unitsMcCabeIndexSum" : 58,
      "linesOfCodeInUnits" : 208
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
      "extension" : "kt",
      "linesOfCode" : 355,
      "unitsCount" : 26,
      "unitsMcCabeIndexSum" : 49,
      "linesOfCodeInUnits" : 298
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/client/IdeRobotClient.kt",
      "extension" : "kt",
      "linesOfCode" : 112,
      "unitsCount" : 20,
      "unitsMcCabeIndexSum" : 20,
      "linesOfCodeInUnits" : 60
    }, {
      "relativePath" : "robot-server-plugin/src/main/resources/static/xpathEditor.js",
      "extension" : "js",
      "linesOfCode" : 227,
      "unitsCount" : 17,
      "unitsMcCabeIndexSum" : 52,
      "linesOfCodeInUnits" : 221
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/JavaScriptApi.kt",
      "extension" : "kt",
      "linesOfCode" : 179,
      "unitsCount" : 16,
      "unitsMcCabeIndexSum" : 16,
      "linesOfCodeInUnits" : 143
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/Fixture.kt",
      "extension" : "kt",
      "linesOfCode" : 130,
      "unitsCount" : 10,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 55
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/TextEditorFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 228,
      "unitsCount" : 9,
      "unitsMcCabeIndexSum" : 14,
      "linesOfCodeInUnits" : 122
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/CellReaderGraphics2d.kt",
      "extension" : "kt",
      "linesOfCode" : 52,
      "unitsCount" : 9,
      "unitsMcCabeIndexSum" : 13,
      "linesOfCodeInUnits" : 42
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/DataExtractorGraphics2d.kt",
      "extension" : "kt",
      "linesOfCode" : 89,
      "unitsCount" : 9,
      "unitsMcCabeIndexSum" : 13,
      "linesOfCodeInUnits" : 50
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/utils/Locators.kt",
      "extension" : "kt",
      "linesOfCode" : 82,
      "unitsCount" : 8,
      "unitsMcCabeIndexSum" : 8,
      "linesOfCodeInUnits" : 67
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JTreeFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 167,
      "unitsCount" : 7,
      "unitsMcCabeIndexSum" : 8,
      "linesOfCodeInUnits" : 51
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JCefBrowserFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 241,
      "unitsCount" : 7,
      "unitsMcCabeIndexSum" : 8,
      "linesOfCodeInUnits" : 24
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/steps/CommonSteps.kt",
      "extension" : "kt",
      "linesOfCode" : 104,
      "unitsCount" : 7,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 63
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/utils/RepeatUtils.kt",
      "extension" : "kt",
      "linesOfCode" : 131,
      "unitsCount" : 7,
      "unitsMcCabeIndexSum" : 18,
      "linesOfCodeInUnits" : 102
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/SearchContext.kt",
      "extension" : "kt",
      "linesOfCode" : 67,
      "unitsCount" : 6,
      "unitsMcCabeIndexSum" : 7,
      "linesOfCodeInUnits" : 46
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/LambdaApi.kt",
      "extension" : "kt",
      "linesOfCode" : 65,
      "unitsCount" : 6,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 39
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/RecordUITestModel.kt",
      "extension" : "kt",
      "linesOfCode" : 100,
      "unitsCount" : 5,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 14
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/CommonContainerFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 157,
      "unitsCount" : 5,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 11
    }, {
      "relativePath" : "ide-launcher/src/main/kotlin/com/intellij/remoterobot/launcher/utils.kt",
      "extension" : "kt",
      "linesOfCode" : 103,
      "unitsCount" : 5,
      "unitsMcCabeIndexSum" : 7,
      "linesOfCodeInUnits" : 84
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JRadioButtonFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 30,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/lux/LuxComponentParser.kt",
      "extension" : "kt",
      "linesOfCode" : 26,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/ExtractedData.kt",
      "extension" : "kt",
      "linesOfCode" : 39,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/stepsProcessing/StepLogger.kt",
      "extension" : "kt",
      "linesOfCode" : 24,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/GroupableStep.kt",
      "extension" : "kt",
      "linesOfCode" : 9,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 3
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/action/OpenRecorderAction.kt",
      "extension" : "kt",
      "linesOfCode" : 17,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/RecorderService.kt",
      "extension" : "kt",
      "linesOfCode" : 31,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/dialogs/CreateNewCommonStepDialogWrapper.kt",
      "extension" : "kt",
      "linesOfCode" : 138,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 47
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/dialogs/CreateNewHotKeyDialogWrapper.kt",
      "extension" : "kt",
      "linesOfCode" : 45,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 18
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JCheckboxFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 34,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/LambdaLoader.kt",
      "extension" : "kt",
      "linesOfCode" : 64,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 21
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/server/CellReaders.kt",
      "extension" : "kt",
      "linesOfCode" : 122,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/TextParser.kt",
      "extension" : "kt",
      "linesOfCode" : 46,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 23
    }, {
      "relativePath" : "robot-server-plugin/src/main/resources/static/updateButton.js",
      "extension" : "js",
      "linesOfCode" : 25,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 23
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/keyboard/TextHotKeyStepModel.kt",
      "extension" : "kt",
      "linesOfCode" : 39,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 23
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/keyboard/TextTypingStepModel.kt",
      "extension" : "kt",
      "linesOfCode" : 25,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/common/CommonStepModel.kt",
      "extension" : "kt",
      "linesOfCode" : 59,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/RobotEventService.kt",
      "extension" : "kt",
      "linesOfCode" : 169,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 32
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/dialogs/CreateNewTypingDialogWrapper.kt",
      "extension" : "kt",
      "linesOfCode" : 39,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 22
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/dialogs/CreateNewMouseEventStepDialogWrapper.kt",
      "extension" : "kt",
      "linesOfCode" : 147,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 48
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/RecordUITestFrame.kt",
      "extension" : "kt",
      "linesOfCode" : 207,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 7,
      "linesOfCodeInUnits" : 13
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JButtonFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 38,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/ComboBoxFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 56,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 6
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/utils/KeyboardUtils.kt",
      "extension" : "kt",
      "linesOfCode" : 93,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "ide-launcher/src/main/kotlin/com/intellij/remoterobot/launcher/IdeDownloader.kt",
      "extension" : "kt",
      "linesOfCode" : 113,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 13
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/js/RhinoJavaScriptExecutor.kt",
      "extension" : "kt",
      "linesOfCode" : 78,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/xpath/XpathDataModelCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 276,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 20
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/xpath/XpathSearcher.kt",
      "extension" : "kt",
      "linesOfCode" : 24,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 14
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/TextToKeyCache.kt",
      "extension" : "kt",
      "linesOfCode" : 61,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 12,
      "linesOfCodeInUnits" : 49
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/textCellRenderers/JListTextCellReader.kt",
      "extension" : "kt",
      "linesOfCode" : 21,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 12
    } ]
  },
  "filesHistoryAnalysisResults" : {
    "overallFileLastModifiedDistribution" : {
      "key" : "",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 702,
      "veryHighRiskValue" : 8540,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 11,
      "veryHighRiskCount" : 123,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 92.4042415061675,
      "highRiskPercentage" : 7.595758493832504,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 9242,
      "totalCount" : 134
    },
    "overallFileFirstModifiedDistribution" : {
      "key" : "",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 40,
      "veryHighRiskValue" : 9202,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 4,
      "veryHighRiskCount" : 130,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 99.56719324821468,
      "highRiskPercentage" : 0.43280675178532785,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 9242,
      "totalCount" : 134
    },
    "overallFileChangeDistribution" : {
      "key" : "",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 6200,
      "lowRiskValue" : 2966,
      "mediumRiskValue" : 76,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 23,
      "negligibleRiskCount" : 110,
      "mediumRiskCount" : 1,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 67.08504652672582,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.822332828392123,
      "lowRiskPercentage" : 32.09262064488206,
      "totalValue" : 9242,
      "totalCount" : 134
    },
    "overallContributorsCountDistribution" : {
      "key" : "",
      "lowRiskThreshold" : 1,
      "mediumRiskThreshold" : 5,
      "highRiskThreshold" : 10,
      "veryHighRiskThreshold" : 25,
      "negligibleRiskValue" : 3858,
      "lowRiskValue" : 5271,
      "mediumRiskValue" : 113,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 63,
      "negligibleRiskCount" : 69,
      "mediumRiskCount" : 2,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1",
      "lowRiskLabel" : "2-5",
      "mediumRiskLabel" : "6-10",
      "highRiskLabel" : "11-25",
      "veryHighRiskLabel" : "26+",
      "negligibleRiskPercentage" : 41.744211209694875,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 1.2226790737935511,
      "lowRiskPercentage" : 57.033109716511575,
      "totalValue" : 9242,
      "totalCount" : 134
    },
    "filesWithoutCommitHistoryCount" : 0,
    "filesWithoutCommitHistoryLinesOfCode" : 0,
    "changeDistributionPerExtension" : [ {
      "key" : "kts",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 71,
      "lowRiskValue" : 199,
      "mediumRiskValue" : 76,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 5,
      "negligibleRiskCount" : 2,
      "mediumRiskCount" : 1,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 20.520231213872833,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 21.965317919075144,
      "lowRiskPercentage" : 57.51445086705202,
      "totalValue" : 346,
      "totalCount" : 8
    }, {
      "key" : "kt",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 4687,
      "lowRiskValue" : 2767,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 18,
      "negligibleRiskCount" : 98,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 62.87899114569359,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 37.12100885430641,
      "totalValue" : 7454,
      "totalCount" : 116
    }, {
      "key" : "xml",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 45,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 5,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 100.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 45,
      "totalCount" : 5
    }, {
      "key" : "js",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 257,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 3,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 100.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 257,
      "totalCount" : 3
    }, {
      "key" : "css",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 48,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 1,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 100.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 48,
      "totalCount" : 1
    }, {
      "key" : "ts",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 1092,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 1,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 100.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 1092,
      "totalCount" : 1
    } ],
    "lastModifiedDistributionPerExtension" : [ {
      "key" : "kts",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 307,
      "veryHighRiskValue" : 39,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 6,
      "veryHighRiskCount" : 2,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 11.271676300578035,
      "highRiskPercentage" : 88.72832369942196,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 346,
      "totalCount" : 8
    }, {
      "key" : "kt",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 355,
      "veryHighRiskValue" : 7099,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 1,
      "veryHighRiskCount" : 115,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 95.23745639924873,
      "highRiskPercentage" : 4.7625436007512745,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 7454,
      "totalCount" : 116
    }, {
      "key" : "xml",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 40,
      "veryHighRiskValue" : 5,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 4,
      "veryHighRiskCount" : 1,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 11.11111111111111,
      "highRiskPercentage" : 88.88888888888889,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 45,
      "totalCount" : 5
    }, {
      "key" : "js",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 257,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 3,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 100.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 257,
      "totalCount" : 3
    }, {
      "key" : "css",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 48,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 1,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 100.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 48,
      "totalCount" : 1
    }, {
      "key" : "ts",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 1092,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 1,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 100.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 1092,
      "totalCount" : 1
    } ],
    "firstModifiedDistributionPerExtension" : [ {
      "key" : "kts",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 346,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 8,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 100.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 346,
      "totalCount" : 8
    }, {
      "key" : "kt",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 7454,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 116,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 100.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 7454,
      "totalCount" : 116
    }, {
      "key" : "xml",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 40,
      "veryHighRiskValue" : 5,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 4,
      "veryHighRiskCount" : 1,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 11.11111111111111,
      "highRiskPercentage" : 88.88888888888889,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 45,
      "totalCount" : 5
    }, {
      "key" : "js",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 257,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 3,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 100.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 257,
      "totalCount" : 3
    }, {
      "key" : "css",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 48,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 1,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 100.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 48,
      "totalCount" : 1
    }, {
      "key" : "ts",
      "lowRiskThreshold" : 30,
      "mediumRiskThreshold" : 90,
      "highRiskThreshold" : 180,
      "veryHighRiskThreshold" : 365,
      "negligibleRiskValue" : 0,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 1092,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 0,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 1,
      "negligibleRiskLabel" : "1-30 days",
      "lowRiskLabel" : "31-90 days",
      "mediumRiskLabel" : "91-180 days",
      "highRiskLabel" : "181-365 days",
      "veryHighRiskLabel" : "366+ days",
      "negligibleRiskPercentage" : 0.0,
      "veryHighRiskPercentage" : 100.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 1092,
      "totalCount" : 1
    } ],
    "changeDistributionPerLogicalDecomposition" : [ {
      "name" : "primary",
      "distributionPerComponent" : [ {
        "key" : "ROOT",
        "lowRiskThreshold" : 5,
        "mediumRiskThreshold" : 20,
        "highRiskThreshold" : 50,
        "veryHighRiskThreshold" : 100,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 73,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 2,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-5",
        "lowRiskLabel" : "6-20",
        "mediumRiskLabel" : "21-50",
        "highRiskLabel" : "51-100",
        "veryHighRiskLabel" : "101+",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 100.0,
        "totalValue" : 73,
        "totalCount" : 2
      }, {
        "key" : "robot-server-plugin",
        "lowRiskThreshold" : 5,
        "mediumRiskThreshold" : 20,
        "highRiskThreshold" : 50,
        "veryHighRiskThreshold" : 100,
        "negligibleRiskValue" : 341,
        "lowRiskValue" : 368,
        "mediumRiskValue" : 76,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 1,
        "negligibleRiskCount" : 7,
        "mediumRiskCount" : 1,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-5",
        "lowRiskLabel" : "6-20",
        "mediumRiskLabel" : "21-50",
        "highRiskLabel" : "51-100",
        "veryHighRiskLabel" : "101+",
        "negligibleRiskPercentage" : 43.439490445859875,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 9.681528662420382,
        "lowRiskPercentage" : 46.87898089171974,
        "totalValue" : 785,
        "totalCount" : 9
      }, {
        "key" : "test-recorder",
        "lowRiskThreshold" : 5,
        "mediumRiskThreshold" : 20,
        "highRiskThreshold" : 50,
        "veryHighRiskThreshold" : 100,
        "negligibleRiskValue" : 653,
        "lowRiskValue" : 777,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 7,
        "negligibleRiskCount" : 17,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-5",
        "lowRiskLabel" : "6-20",
        "mediumRiskLabel" : "21-50",
        "highRiskLabel" : "51-100",
        "veryHighRiskLabel" : "101+",
        "negligibleRiskPercentage" : 45.66433566433567,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 54.33566433566433,
        "totalValue" : 1430,
        "totalCount" : 24
      }, {
        "key" : "remote-fixtures",
        "lowRiskThreshold" : 5,
        "mediumRiskThreshold" : 20,
        "highRiskThreshold" : 50,
        "veryHighRiskThreshold" : 100,
        "negligibleRiskValue" : 996,
        "lowRiskValue" : 746,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 5,
        "negligibleRiskCount" : 21,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-5",
        "lowRiskLabel" : "6-20",
        "mediumRiskLabel" : "21-50",
        "highRiskLabel" : "51-100",
        "veryHighRiskLabel" : "101+",
        "negligibleRiskPercentage" : 57.175660160734786,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 42.824339839265214,
        "totalValue" : 1742,
        "totalCount" : 26
      }, {
        "key" : "ide-launcher",
        "lowRiskThreshold" : 5,
        "mediumRiskThreshold" : 20,
        "highRiskThreshold" : 50,
        "veryHighRiskThreshold" : 100,
        "negligibleRiskValue" : 302,
        "lowRiskValue" : 140,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 1,
        "negligibleRiskCount" : 5,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-5",
        "lowRiskLabel" : "6-20",
        "mediumRiskLabel" : "21-50",
        "highRiskLabel" : "51-100",
        "veryHighRiskLabel" : "101+",
        "negligibleRiskPercentage" : 68.32579185520362,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 31.67420814479638,
        "totalValue" : 442,
        "totalCount" : 6
      }, {
        "key" : "robot-server-core",
        "lowRiskThreshold" : 5,
        "mediumRiskThreshold" : 20,
        "highRiskThreshold" : 50,
        "veryHighRiskThreshold" : 100,
        "negligibleRiskValue" : 926,
        "lowRiskValue" : 323,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 2,
        "negligibleRiskCount" : 9,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-5",
        "lowRiskLabel" : "6-20",
        "mediumRiskLabel" : "21-50",
        "highRiskLabel" : "51-100",
        "veryHighRiskLabel" : "101+",
        "negligibleRiskPercentage" : 74.13931144915932,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 25.860688550840674,
        "totalValue" : 1249,
        "totalCount" : 11
      }, {
        "key" : "remote-robot",
        "lowRiskThreshold" : 5,
        "mediumRiskThreshold" : 20,
        "highRiskThreshold" : 50,
        "veryHighRiskThreshold" : 100,
        "negligibleRiskValue" : 2982,
        "lowRiskValue" : 539,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 0,
        "lowRiskCount" : 5,
        "negligibleRiskCount" : 51,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 0,
        "negligibleRiskLabel" : "1-5",
        "lowRiskLabel" : "6-20",
        "mediumRiskLabel" : "21-50",
        "highRiskLabel" : "51-100",
        "veryHighRiskLabel" : "101+",
        "negligibleRiskPercentage" : 84.69184890656064,
        "veryHighRiskPercentage" : 0.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 15.308151093439363,
        "totalValue" : 3521,
        "totalCount" : 56
      } ]
    } ],
    "firstModifiedDistributionPerLogicalDecomposition" : [ {
      "name" : "primary",
      "distributionPerComponent" : [ {
        "key" : "ROOT",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 73,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 2,
        "negligibleRiskLabel" : "1-30 days",
        "lowRiskLabel" : "31-90 days",
        "mediumRiskLabel" : "91-180 days",
        "highRiskLabel" : "181-365 days",
        "veryHighRiskLabel" : "366+ days",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 100.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 73,
        "totalCount" : 2
      }, {
        "key" : "robot-server-plugin",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 785,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 9,
        "negligibleRiskLabel" : "1-30 days",
        "lowRiskLabel" : "31-90 days",
        "mediumRiskLabel" : "91-180 days",
        "highRiskLabel" : "181-365 days",
        "veryHighRiskLabel" : "366+ days",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 100.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 785,
        "totalCount" : 9
      }, {
        "key" : "test-recorder",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 10,
        "veryHighRiskValue" : 1420,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 1,
        "veryHighRiskCount" : 23,
        "negligibleRiskLabel" : "1-30 days",
        "lowRiskLabel" : "31-90 days",
        "mediumRiskLabel" : "91-180 days",
        "highRiskLabel" : "181-365 days",
        "veryHighRiskLabel" : "366+ days",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 99.3006993006993,
        "highRiskPercentage" : 0.6993006993006993,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 1430,
        "totalCount" : 24
      }, {
        "key" : "remote-fixtures",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 10,
        "veryHighRiskValue" : 1732,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 1,
        "veryHighRiskCount" : 25,
        "negligibleRiskLabel" : "1-30 days",
        "lowRiskLabel" : "31-90 days",
        "mediumRiskLabel" : "91-180 days",
        "highRiskLabel" : "181-365 days",
        "veryHighRiskLabel" : "366+ days",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 99.42594718714122,
        "highRiskPercentage" : 0.574052812858783,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 1742,
        "totalCount" : 26
      }, {
        "key" : "ide-launcher",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 442,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 6,
        "negligibleRiskLabel" : "1-30 days",
        "lowRiskLabel" : "31-90 days",
        "mediumRiskLabel" : "91-180 days",
        "highRiskLabel" : "181-365 days",
        "veryHighRiskLabel" : "366+ days",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 100.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 442,
        "totalCount" : 6
      }, {
        "key" : "robot-server-core",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 10,
        "veryHighRiskValue" : 1239,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 1,
        "veryHighRiskCount" : 10,
        "negligibleRiskLabel" : "1-30 days",
        "lowRiskLabel" : "31-90 days",
        "mediumRiskLabel" : "91-180 days",
        "highRiskLabel" : "181-365 days",
        "veryHighRiskLabel" : "366+ days",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 99.19935948759007,
        "highRiskPercentage" : 0.800640512409928,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 1249,
        "totalCount" : 11
      }, {
        "key" : "remote-robot",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 10,
        "veryHighRiskValue" : 3511,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 1,
        "veryHighRiskCount" : 55,
        "negligibleRiskLabel" : "1-30 days",
        "lowRiskLabel" : "31-90 days",
        "mediumRiskLabel" : "91-180 days",
        "highRiskLabel" : "181-365 days",
        "veryHighRiskLabel" : "366+ days",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 99.71598977563193,
        "highRiskPercentage" : 0.28401022436807727,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 3521,
        "totalCount" : 56
      } ]
    } ],
    "lastModifiedDistributionPerLogicalDecomposition" : [ {
      "name" : "primary",
      "distributionPerComponent" : [ {
        "key" : "ROOT",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 65,
        "veryHighRiskValue" : 8,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 1,
        "veryHighRiskCount" : 1,
        "negligibleRiskLabel" : "1-30 days",
        "lowRiskLabel" : "31-90 days",
        "mediumRiskLabel" : "91-180 days",
        "highRiskLabel" : "181-365 days",
        "veryHighRiskLabel" : "366+ days",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 10.95890410958904,
        "highRiskPercentage" : 89.04109589041096,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 73,
        "totalCount" : 2
      }, {
        "key" : "robot-server-plugin",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 76,
        "veryHighRiskValue" : 709,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 1,
        "veryHighRiskCount" : 8,
        "negligibleRiskLabel" : "1-30 days",
        "lowRiskLabel" : "31-90 days",
        "mediumRiskLabel" : "91-180 days",
        "highRiskLabel" : "181-365 days",
        "veryHighRiskLabel" : "366+ days",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 90.31847133757962,
        "highRiskPercentage" : 9.681528662420382,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 785,
        "totalCount" : 9
      }, {
        "key" : "test-recorder",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 52,
        "veryHighRiskValue" : 1378,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 2,
        "veryHighRiskCount" : 22,
        "negligibleRiskLabel" : "1-30 days",
        "lowRiskLabel" : "31-90 days",
        "mediumRiskLabel" : "91-180 days",
        "highRiskLabel" : "181-365 days",
        "veryHighRiskLabel" : "366+ days",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 96.36363636363636,
        "highRiskPercentage" : 3.6363636363636362,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 1430,
        "totalCount" : 24
      }, {
        "key" : "remote-fixtures",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 50,
        "veryHighRiskValue" : 1692,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 2,
        "veryHighRiskCount" : 24,
        "negligibleRiskLabel" : "1-30 days",
        "lowRiskLabel" : "31-90 days",
        "mediumRiskLabel" : "91-180 days",
        "highRiskLabel" : "181-365 days",
        "veryHighRiskLabel" : "366+ days",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 97.12973593570608,
        "highRiskPercentage" : 2.8702640642939152,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 1742,
        "totalCount" : 26
      }, {
        "key" : "ide-launcher",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 0,
        "veryHighRiskValue" : 442,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 0,
        "veryHighRiskCount" : 6,
        "negligibleRiskLabel" : "1-30 days",
        "lowRiskLabel" : "31-90 days",
        "mediumRiskLabel" : "91-180 days",
        "highRiskLabel" : "181-365 days",
        "veryHighRiskLabel" : "366+ days",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 100.0,
        "highRiskPercentage" : 0.0,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 442,
        "totalCount" : 6
      }, {
        "key" : "robot-server-core",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 412,
        "veryHighRiskValue" : 837,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 3,
        "veryHighRiskCount" : 8,
        "negligibleRiskLabel" : "1-30 days",
        "lowRiskLabel" : "31-90 days",
        "mediumRiskLabel" : "91-180 days",
        "highRiskLabel" : "181-365 days",
        "veryHighRiskLabel" : "366+ days",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 67.01361088871097,
        "highRiskPercentage" : 32.98638911128903,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 1249,
        "totalCount" : 11
      }, {
        "key" : "remote-robot",
        "lowRiskThreshold" : 30,
        "mediumRiskThreshold" : 90,
        "highRiskThreshold" : 180,
        "veryHighRiskThreshold" : 365,
        "negligibleRiskValue" : 0,
        "lowRiskValue" : 0,
        "mediumRiskValue" : 0,
        "highRiskValue" : 47,
        "veryHighRiskValue" : 3474,
        "lowRiskCount" : 0,
        "negligibleRiskCount" : 0,
        "mediumRiskCount" : 0,
        "highRiskCount" : 2,
        "veryHighRiskCount" : 54,
        "negligibleRiskLabel" : "1-30 days",
        "lowRiskLabel" : "31-90 days",
        "mediumRiskLabel" : "91-180 days",
        "highRiskLabel" : "181-365 days",
        "veryHighRiskLabel" : "366+ days",
        "negligibleRiskPercentage" : 0.0,
        "veryHighRiskPercentage" : 98.66515194547004,
        "highRiskPercentage" : 1.334848054529963,
        "mediumRiskPercentage" : 0.0,
        "lowRiskPercentage" : 0.0,
        "totalValue" : 3521,
        "totalCount" : 56
      } ]
    } ],
    "oldestFiles" : [ {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/server/CellReaders.kt",
      "extension" : "kt",
      "linesOfCode" : 122,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "robot-server-plugin/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 76,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 65,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 37,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "settings.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 8,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
      "extension" : "kt",
      "linesOfCode" : 368,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 278
    }, {
      "relativePath" : "remote-robot/src/main/resources/api/ContextApi.ts",
      "extension" : "ts",
      "linesOfCode" : 1092,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/RemoteRobot.kt",
      "extension" : "kt",
      "linesOfCode" : 239,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 4
    }, {
      "relativePath" : "robot-server-plugin/src/main/resources/static/xpathEditor.js",
      "extension" : "js",
      "linesOfCode" : 227,
      "unitsCount" : 17,
      "unitsMcCabeIndexSum" : 52,
      "linesOfCodeInUnits" : 221
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/JavaScriptApi.kt",
      "extension" : "kt",
      "linesOfCode" : 179,
      "unitsCount" : 16,
      "unitsMcCabeIndexSum" : 16,
      "linesOfCodeInUnits" : 143
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/utils/RepeatUtils.kt",
      "extension" : "kt",
      "linesOfCode" : 131,
      "unitsCount" : 7,
      "unitsMcCabeIndexSum" : 18,
      "linesOfCodeInUnits" : 102
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/Fixture.kt",
      "extension" : "kt",
      "linesOfCode" : 130,
      "unitsCount" : 10,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 55
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/client/IdeRobotClient.kt",
      "extension" : "kt",
      "linesOfCode" : 112,
      "unitsCount" : 20,
      "unitsMcCabeIndexSum" : 20,
      "linesOfCodeInUnits" : 60
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/ComponentFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 72,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 6
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/SearchContext.kt",
      "extension" : "kt",
      "linesOfCode" : 67,
      "unitsCount" : 6,
      "unitsMcCabeIndexSum" : 7,
      "linesOfCodeInUnits" : 46
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/LambdaApi.kt",
      "extension" : "kt",
      "linesOfCode" : 65,
      "unitsCount" : 6,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 39
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/data/ObjectContainer.kt",
      "extension" : "kt",
      "linesOfCode" : 63,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/encryption/AesEncryptor.kt",
      "extension" : "kt",
      "linesOfCode" : 60,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 36
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/client/IdeRobotApi.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "robot-server-plugin/src/main/resources/static/styles.css",
      "extension" : "css",
      "linesOfCode" : 48,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/search/Finder.kt",
      "extension" : "kt",
      "linesOfCode" : 45,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 32
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/data/RobotContext.kt",
      "extension" : "kt",
      "linesOfCode" : 44,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 5
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/ExtractedData.kt",
      "extension" : "kt",
      "linesOfCode" : 39,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/data/Responses.kt",
      "extension" : "kt",
      "linesOfCode" : 38,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/TextFixtureDelegator.kt",
      "extension" : "kt",
      "linesOfCode" : 36,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/RemoteText.kt",
      "extension" : "kt",
      "linesOfCode" : 35,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 3
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/stepsProcessing/StepWorker.kt",
      "extension" : "kt",
      "linesOfCode" : 26,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 18
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/utils/SerializationUtils.kt",
      "extension" : "kt",
      "linesOfCode" : 26,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "robot-server-plugin/src/main/resources/static/updateButton.js",
      "extension" : "js",
      "linesOfCode" : 25,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 23
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/stepsProcessing/StepLogger.kt",
      "extension" : "kt",
      "linesOfCode" : 24,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/data/RemoteComponent.kt",
      "extension" : "kt",
      "linesOfCode" : 22,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/ContainerFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 20,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/search/locators/Locator.kt",
      "extension" : "kt",
      "linesOfCode" : 20,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/TextDataPredicates.kt",
      "extension" : "kt",
      "linesOfCode" : 19,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerStarter.kt",
      "extension" : "kt",
      "linesOfCode" : 18,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/utils/LoggingUtils.kt",
      "extension" : "kt",
      "linesOfCode" : 15,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/encryption/EncryptorFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 14,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/utils/ComponentLookupExceptionSerializer.kt",
      "extension" : "kt",
      "linesOfCode" : 13,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 5
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/data/js/ExecuteScriptRequest.kt",
      "extension" : "kt",
      "linesOfCode" : 10,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 6
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/encryption/TurnedOffEncryptor.kt",
      "extension" : "kt",
      "linesOfCode" : 9,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 6
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/FixtureAnnotations.kt",
      "extension" : "kt",
      "linesOfCode" : 8,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/client/RetrieveResponse.kt",
      "extension" : "kt",
      "linesOfCode" : 8,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/stepsProcessing/StepProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 7,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/data/componentData.kt",
      "extension" : "kt",
      "linesOfCode" : 7,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/client/ComponentDataResponse.kt",
      "extension" : "kt",
      "linesOfCode" : 7,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/client/ExecuteResponse.kt",
      "extension" : "kt",
      "linesOfCode" : 7,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/client/FindComponentsResponse.kt",
      "extension" : "kt",
      "linesOfCode" : 7,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/utils/DefaultHttpClient.kt",
      "extension" : "kt",
      "linesOfCode" : 6,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "robot-server-plugin/src/main/resources/META-INF/plugin.xml",
      "extension" : "xml",
      "linesOfCode" : 5,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "robot-server-plugin/src/main/resources/static/scripts.js",
      "extension" : "js",
      "linesOfCode" : 5,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 5
    } ],
    "youngestFiles" : [ {
      "relativePath" : "test-recorder/src/main/resources/META-INF/plugin.xml",
      "extension" : "xml",
      "linesOfCode" : 10,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-fixtures/src/main/resources/META-INF/plugin.xml",
      "extension" : "xml",
      "linesOfCode" : 10,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "robot-server-core/src/main/resources/META-INF/plugin.xml",
      "extension" : "xml",
      "linesOfCode" : 10,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/resources/META-INF/plugin.xml",
      "extension" : "xml",
      "linesOfCode" : 10,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/lux/LuxComponentParser.kt",
      "extension" : "kt",
      "linesOfCode" : 26,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/GroupableStep.kt",
      "extension" : "kt",
      "linesOfCode" : 9,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 3
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/keyboard/KeyboardStepModel.kt",
      "extension" : "kt",
      "linesOfCode" : 8,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/utils.kt",
      "extension" : "kt",
      "linesOfCode" : 27,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/dialogs/CreateNewCommonStepDialogWrapper.kt",
      "extension" : "kt",
      "linesOfCode" : 138,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 47
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/steps/CommonSteps.kt",
      "extension" : "kt",
      "linesOfCode" : 104,
      "unitsCount" : 7,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 63
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/common/CommonStepModel.kt",
      "extension" : "kt",
      "linesOfCode" : 59,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/dialogs/CreateNewHotKeyDialogWrapper.kt",
      "extension" : "kt",
      "linesOfCode" : 45,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 18
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/keyboard/TextHotKeyStepModel.kt",
      "extension" : "kt",
      "linesOfCode" : 39,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 23
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/dialogs/CreateNewTypingDialogWrapper.kt",
      "extension" : "kt",
      "linesOfCode" : 39,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 22
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/keyboard/TextTypingStepModel.kt",
      "extension" : "kt",
      "linesOfCode" : 25,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/dialogs/CreateNewMouseEventStepDialogWrapper.kt",
      "extension" : "kt",
      "linesOfCode" : 147,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 48
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/mouse/MouseClickOperation.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/mouse/MouseEventStepModel.kt",
      "extension" : "kt",
      "linesOfCode" : 39,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 8
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/mouse/MouseMoveOperation.kt",
      "extension" : "kt",
      "linesOfCode" : 29,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/mouse/MouseEventOperation.kt",
      "extension" : "kt",
      "linesOfCode" : 5,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/mouse/MouseEventStepActionType.kt",
      "extension" : "kt",
      "linesOfCode" : 4,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/RecordUITestFrame.kt",
      "extension" : "kt",
      "linesOfCode" : 207,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 7,
      "linesOfCodeInUnits" : 13
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/LocatorGenerator.kt",
      "extension" : "kt",
      "linesOfCode" : 186,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 4
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/RobotEventService.kt",
      "extension" : "kt",
      "linesOfCode" : 169,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 32
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/RecordUITestModel.kt",
      "extension" : "kt",
      "linesOfCode" : 100,
      "unitsCount" : 5,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 14
    }, {
      "relativePath" : "test-recorder/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 42,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/RecorderService.kt",
      "extension" : "kt",
      "linesOfCode" : 31,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/action/OpenRecorderAction.kt",
      "extension" : "kt",
      "linesOfCode" : 17,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/utils/RecorderUtils.kt",
      "extension" : "kt",
      "linesOfCode" : 13,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/ComponentFixtureUtils.kt",
      "extension" : "kt",
      "linesOfCode" : 11,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/StepModel.kt",
      "extension" : "kt",
      "linesOfCode" : 5,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
      "extension" : "kt",
      "linesOfCode" : 355,
      "unitsCount" : 26,
      "unitsMcCabeIndexSum" : 49,
      "linesOfCodeInUnits" : 298
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/robot/SmoothRobot.kt",
      "extension" : "kt",
      "linesOfCode" : 334,
      "unitsCount" : 52,
      "unitsMcCabeIndexSum" : 58,
      "linesOfCodeInUnits" : 208
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/xpath/XpathDataModelCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 276,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 20
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/js/RhinoJavaScriptExecutor.kt",
      "extension" : "kt",
      "linesOfCode" : 78,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/LambdaLoader.kt",
      "extension" : "kt",
      "linesOfCode" : 64,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 21
    }, {
      "relativePath" : "robot-server-core/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 47,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/xpath/XpathUtils.kt",
      "extension" : "kt",
      "linesOfCode" : 28,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/xpath/XpathSearcher.kt",
      "extension" : "kt",
      "linesOfCode" : 24,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 14
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/js/JavaScriptExecutor.kt",
      "extension" : "kt",
      "linesOfCode" : 7,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "ide-launcher/src/main/kotlin/com/intellij/remoterobot/launcher/IdeLauncher.kt",
      "extension" : "kt",
      "linesOfCode" : 140,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "ide-launcher/src/main/kotlin/com/intellij/remoterobot/launcher/IdeDownloader.kt",
      "extension" : "kt",
      "linesOfCode" : 113,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 13
    }, {
      "relativePath" : "ide-launcher/src/main/kotlin/com/intellij/remoterobot/launcher/utils.kt",
      "extension" : "kt",
      "linesOfCode" : 103,
      "unitsCount" : 5,
      "unitsMcCabeIndexSum" : 7,
      "linesOfCodeInUnits" : 84
    }, {
      "relativePath" : "ide-launcher/src/main/kotlin/com/intellij/remoterobot/launcher/Ide.kt",
      "extension" : "kt",
      "linesOfCode" : 40,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "ide-launcher/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 31,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "ide-launcher/src/main/kotlin/com/intellij/remoterobot/launcher/Os.kt",
      "extension" : "kt",
      "linesOfCode" : 15,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JTableFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 33,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/textCellRenderers/JTableTextCellReader.kt",
      "extension" : "kt",
      "linesOfCode" : 21,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/HeavyWeightWindowFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 17,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/TextEditorFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 228,
      "unitsCount" : 9,
      "unitsMcCabeIndexSum" : 14,
      "linesOfCodeInUnits" : 122
    } ],
    "mostRecentlyChangedFiles" : [ {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
      "extension" : "kt",
      "linesOfCode" : 355,
      "unitsCount" : 26,
      "unitsMcCabeIndexSum" : 49,
      "linesOfCodeInUnits" : 298
    }, {
      "relativePath" : "robot-server-plugin/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 76,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 65,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "robot-server-core/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 47,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "test-recorder/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 42,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-fixtures/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 40,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 37,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "test-recorder/src/main/resources/META-INF/plugin.xml",
      "extension" : "xml",
      "linesOfCode" : 10,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-fixtures/src/main/resources/META-INF/plugin.xml",
      "extension" : "xml",
      "linesOfCode" : 10,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "robot-server-core/src/main/resources/META-INF/plugin.xml",
      "extension" : "xml",
      "linesOfCode" : 10,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/resources/META-INF/plugin.xml",
      "extension" : "xml",
      "linesOfCode" : 10,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "ide-launcher/src/main/kotlin/com/intellij/remoterobot/launcher/IdeLauncher.kt",
      "extension" : "kt",
      "linesOfCode" : 140,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/action/OpenRecorderAction.kt",
      "extension" : "kt",
      "linesOfCode" : 17,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JCefBrowserFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 241,
      "unitsCount" : 7,
      "unitsMcCabeIndexSum" : 8,
      "linesOfCodeInUnits" : 24
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JTreeFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 167,
      "unitsCount" : 7,
      "unitsMcCabeIndexSum" : 8,
      "linesOfCodeInUnits" : 51
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/RobotEventService.kt",
      "extension" : "kt",
      "linesOfCode" : 169,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 32
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/xpath/XpathDataModelCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 276,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 20
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JListFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 45,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 3
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/textCellRenderers/JListTextCellReader.kt",
      "extension" : "kt",
      "linesOfCode" : 21,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "robot-server-plugin/src/main/resources/static/xpathEditor.js",
      "extension" : "js",
      "linesOfCode" : 227,
      "unitsCount" : 17,
      "unitsMcCabeIndexSum" : 52,
      "linesOfCodeInUnits" : 221
    }, {
      "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerStarter.kt",
      "extension" : "kt",
      "linesOfCode" : 18,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "robot-server-plugin/src/main/resources/META-INF/plugin.xml",
      "extension" : "xml",
      "linesOfCode" : 5,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/TextParser.kt",
      "extension" : "kt",
      "linesOfCode" : 46,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 23
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/steps/CommonSteps.kt",
      "extension" : "kt",
      "linesOfCode" : 104,
      "unitsCount" : 7,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 63
    }, {
      "relativePath" : "ide-launcher/src/main/kotlin/com/intellij/remoterobot/launcher/Ide.kt",
      "extension" : "kt",
      "linesOfCode" : 40,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/ComponentFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 72,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 6
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/lux/LuxComponentParser.kt",
      "extension" : "kt",
      "linesOfCode" : 26,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/dialogs/CreateNewMouseEventStepDialogWrapper.kt",
      "extension" : "kt",
      "linesOfCode" : 147,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 48
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/mouse/MouseClickOperation.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/utils/KeyboardUtils.kt",
      "extension" : "kt",
      "linesOfCode" : 93,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/RecordUITestFrame.kt",
      "extension" : "kt",
      "linesOfCode" : 207,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 7,
      "linesOfCodeInUnits" : 13
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/LocatorGenerator.kt",
      "extension" : "kt",
      "linesOfCode" : 186,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 4
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/RecordUITestModel.kt",
      "extension" : "kt",
      "linesOfCode" : 100,
      "unitsCount" : 5,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 14
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/dialogs/CreateNewHotKeyDialogWrapper.kt",
      "extension" : "kt",
      "linesOfCode" : 45,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 18
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/mouse/MouseEventStepModel.kt",
      "extension" : "kt",
      "linesOfCode" : 39,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 8
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/keyboard/TextHotKeyStepModel.kt",
      "extension" : "kt",
      "linesOfCode" : 39,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 23
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/dialogs/CreateNewTypingDialogWrapper.kt",
      "extension" : "kt",
      "linesOfCode" : 39,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 22
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/utils.kt",
      "extension" : "kt",
      "linesOfCode" : 27,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/keyboard/TextTypingStepModel.kt",
      "extension" : "kt",
      "linesOfCode" : 25,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/GroupableStep.kt",
      "extension" : "kt",
      "linesOfCode" : 9,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 3
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/keyboard/KeyboardStepModel.kt",
      "extension" : "kt",
      "linesOfCode" : 8,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/utils/RepeatUtils.kt",
      "extension" : "kt",
      "linesOfCode" : 131,
      "unitsCount" : 7,
      "unitsMcCabeIndexSum" : 18,
      "linesOfCodeInUnits" : 102
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/dialogs/CreateNewCommonStepDialogWrapper.kt",
      "extension" : "kt",
      "linesOfCode" : 138,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 47
    }, {
      "relativePath" : "ide-launcher/src/main/kotlin/com/intellij/remoterobot/launcher/utils.kt",
      "extension" : "kt",
      "linesOfCode" : 103,
      "unitsCount" : 5,
      "unitsMcCabeIndexSum" : 7,
      "linesOfCodeInUnits" : 84
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/textCellRenderers/JTableTextCellReader.kt",
      "extension" : "kt",
      "linesOfCode" : 21,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/textCellRenderers/JTreeTextCellReader.kt",
      "extension" : "kt",
      "linesOfCode" : 18,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/textCellRenderers/JComboBoxTextCellReader.kt",
      "extension" : "kt",
      "linesOfCode" : 17,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 8
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/common/CommonStepModel.kt",
      "extension" : "kt",
      "linesOfCode" : 59,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/mouse/MouseMoveOperation.kt",
      "extension" : "kt",
      "linesOfCode" : 29,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/mouse/MouseEventOperation.kt",
      "extension" : "kt",
      "linesOfCode" : 5,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    } ],
    "mostPreviouslyChangedFiles" : [ {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/client/IdeaSideException.kt",
      "extension" : "kt",
      "linesOfCode" : 2,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/client/FindByXpathRequest.kt",
      "extension" : "kt",
      "linesOfCode" : 3,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/encryption/Encryptor.kt",
      "extension" : "kt",
      "linesOfCode" : 5,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "robot-server-plugin/src/main/resources/static/scripts.js",
      "extension" : "js",
      "linesOfCode" : 5,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 5
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/utils/DefaultHttpClient.kt",
      "extension" : "kt",
      "linesOfCode" : 6,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/client/FindComponentsResponse.kt",
      "extension" : "kt",
      "linesOfCode" : 7,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/client/ExecuteResponse.kt",
      "extension" : "kt",
      "linesOfCode" : 7,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/client/ComponentDataResponse.kt",
      "extension" : "kt",
      "linesOfCode" : 7,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/stepsProcessing/StepProcessor.kt",
      "extension" : "kt",
      "linesOfCode" : 7,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/client/RetrieveResponse.kt",
      "extension" : "kt",
      "linesOfCode" : 8,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/FixtureAnnotations.kt",
      "extension" : "kt",
      "linesOfCode" : 8,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/encryption/TurnedOffEncryptor.kt",
      "extension" : "kt",
      "linesOfCode" : 9,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 6
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/data/js/ExecuteScriptRequest.kt",
      "extension" : "kt",
      "linesOfCode" : 10,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 6
    }, {
      "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/utils/ComponentLookupExceptionSerializer.kt",
      "extension" : "kt",
      "linesOfCode" : 13,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 5
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/utils/LoggingUtils.kt",
      "extension" : "kt",
      "linesOfCode" : 15,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/search/locators/Locator.kt",
      "extension" : "kt",
      "linesOfCode" : 20,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/ContainerFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 20,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/data/RemoteComponent.kt",
      "extension" : "kt",
      "linesOfCode" : 22,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/stepsProcessing/StepLogger.kt",
      "extension" : "kt",
      "linesOfCode" : 24,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "robot-server-plugin/src/main/resources/static/updateButton.js",
      "extension" : "js",
      "linesOfCode" : 25,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 23
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/stepsProcessing/StepWorker.kt",
      "extension" : "kt",
      "linesOfCode" : 26,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 18
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/TextFixtureDelegator.kt",
      "extension" : "kt",
      "linesOfCode" : 36,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/search/Finder.kt",
      "extension" : "kt",
      "linesOfCode" : 45,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 32
    }, {
      "relativePath" : "robot-server-plugin/src/main/resources/static/styles.css",
      "extension" : "css",
      "linesOfCode" : 48,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/LambdaApi.kt",
      "extension" : "kt",
      "linesOfCode" : 65,
      "unitsCount" : 6,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 39
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/SearchContext.kt",
      "extension" : "kt",
      "linesOfCode" : 67,
      "unitsCount" : 6,
      "unitsMcCabeIndexSum" : 7,
      "linesOfCodeInUnits" : 46
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/ExtractedData.kt",
      "extension" : "kt",
      "linesOfCode" : 39,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/CellReaderGraphics2d.kt",
      "extension" : "kt",
      "linesOfCode" : 52,
      "unitsCount" : 9,
      "unitsMcCabeIndexSum" : 13,
      "linesOfCodeInUnits" : 42
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/ExtractorGraphics2d.kt",
      "extension" : "kt",
      "linesOfCode" : 229,
      "unitsCount" : 61,
      "unitsMcCabeIndexSum" : 61,
      "linesOfCodeInUnits" : 214
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/data/Responses.kt",
      "extension" : "kt",
      "linesOfCode" : 38,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/utils/LruCache.kt",
      "extension" : "kt",
      "linesOfCode" : 6,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 3
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/data/componentData.kt",
      "extension" : "kt",
      "linesOfCode" : 7,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/TextDataPredicates.kt",
      "extension" : "kt",
      "linesOfCode" : 19,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/DataExtractorGraphics2d.kt",
      "extension" : "kt",
      "linesOfCode" : 89,
      "unitsCount" : 9,
      "unitsMcCabeIndexSum" : 13,
      "linesOfCodeInUnits" : 50
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/utils/RelativeLocators.kt",
      "extension" : "kt",
      "linesOfCode" : 57,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/data/RobotContext.kt",
      "extension" : "kt",
      "linesOfCode" : 44,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 5
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/Fixture.kt",
      "extension" : "kt",
      "linesOfCode" : 130,
      "unitsCount" : 10,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 55
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/JavaScriptApi.kt",
      "extension" : "kt",
      "linesOfCode" : 179,
      "unitsCount" : 16,
      "unitsMcCabeIndexSum" : 16,
      "linesOfCodeInUnits" : 143
    }, {
      "relativePath" : "remote-robot/src/main/resources/api/ContextApi.ts",
      "extension" : "ts",
      "linesOfCode" : 1092,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/utils/Utils.kt",
      "extension" : "kt",
      "linesOfCode" : 11,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/RemoteText.kt",
      "extension" : "kt",
      "linesOfCode" : 35,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 3
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/textCellRenderers/EdtUtil.kt",
      "extension" : "kt",
      "linesOfCode" : 6,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/utils/Locators.kt",
      "extension" : "kt",
      "linesOfCode" : 82,
      "unitsCount" : 8,
      "unitsMcCabeIndexSum" : 8,
      "linesOfCodeInUnits" : 67
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/TextToKeyCache.kt",
      "extension" : "kt",
      "linesOfCode" : 61,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 12,
      "linesOfCodeInUnits" : 49
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/encryption/EncryptorFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 14,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/RemoteRobot.kt",
      "extension" : "kt",
      "linesOfCode" : 239,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 4
    }, {
      "relativePath" : "ide-launcher/src/main/kotlin/com/intellij/remoterobot/launcher/Os.kt",
      "extension" : "kt",
      "linesOfCode" : 15,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "ide-launcher/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 31,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/stepsProcessing/Log.kt",
      "extension" : "kt",
      "linesOfCode" : 4,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/utils/SerializationUtils.kt",
      "extension" : "kt",
      "linesOfCode" : 26,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    } ],
    "mostChangedFiles" : [ {
      "relativePath" : "robot-server-plugin/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 76,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 65,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 37,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
      "extension" : "kt",
      "linesOfCode" : 368,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 278
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/RecordUITestModel.kt",
      "extension" : "kt",
      "linesOfCode" : 100,
      "unitsCount" : 5,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 14
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JTreeFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 167,
      "unitsCount" : 7,
      "unitsMcCabeIndexSum" : 8,
      "linesOfCodeInUnits" : 51
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/RecordUITestFrame.kt",
      "extension" : "kt",
      "linesOfCode" : 207,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 7,
      "linesOfCodeInUnits" : 13
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/mouse/MouseClickOperation.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/dialogs/CreateNewMouseEventStepDialogWrapper.kt",
      "extension" : "kt",
      "linesOfCode" : 147,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 48
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/CommonContainerFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 157,
      "unitsCount" : 5,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 11
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/LocatorGenerator.kt",
      "extension" : "kt",
      "linesOfCode" : 186,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 4
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/xpath/XpathDataModelCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 276,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 20
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/dialogs/CreateNewHotKeyDialogWrapper.kt",
      "extension" : "kt",
      "linesOfCode" : 45,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 18
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/steps/CommonSteps.kt",
      "extension" : "kt",
      "linesOfCode" : 104,
      "unitsCount" : 7,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 63
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/Fixture.kt",
      "extension" : "kt",
      "linesOfCode" : 130,
      "unitsCount" : 10,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 55
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/RemoteRobot.kt",
      "extension" : "kt",
      "linesOfCode" : 239,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 4
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JCefBrowserFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 241,
      "unitsCount" : 7,
      "unitsMcCabeIndexSum" : 8,
      "linesOfCodeInUnits" : 24
    }, {
      "relativePath" : "settings.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 8,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "test-recorder/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 42,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "robot-server-core/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 47,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/TextToKeyCache.kt",
      "extension" : "kt",
      "linesOfCode" : 61,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 12,
      "linesOfCodeInUnits" : 49
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/ComponentFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 72,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 6
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JMenuBarFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 77,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "ide-launcher/src/main/kotlin/com/intellij/remoterobot/launcher/IdeLauncher.kt",
      "extension" : "kt",
      "linesOfCode" : 140,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerStarter.kt",
      "extension" : "kt",
      "linesOfCode" : 18,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/mouse/MouseEventStepModel.kt",
      "extension" : "kt",
      "linesOfCode" : 39,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 8
    }, {
      "relativePath" : "remote-fixtures/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 40,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/client/IdeRobotApi.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/client/IdeRobotClient.kt",
      "extension" : "kt",
      "linesOfCode" : 112,
      "unitsCount" : 20,
      "unitsMcCabeIndexSum" : 20,
      "linesOfCodeInUnits" : 60
    }, {
      "relativePath" : "ide-launcher/src/main/kotlin/com/intellij/remoterobot/launcher/IdeDownloader.kt",
      "extension" : "kt",
      "linesOfCode" : 113,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 13
    }, {
      "relativePath" : "robot-server-plugin/src/main/resources/static/xpathEditor.js",
      "extension" : "js",
      "linesOfCode" : 227,
      "unitsCount" : 17,
      "unitsMcCabeIndexSum" : 52,
      "linesOfCodeInUnits" : 221
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/TextEditorFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 228,
      "unitsCount" : 9,
      "unitsMcCabeIndexSum" : 14,
      "linesOfCodeInUnits" : 122
    }, {
      "relativePath" : "robot-server-plugin/src/main/resources/META-INF/plugin.xml",
      "extension" : "xml",
      "linesOfCode" : 5,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/textCellRenderers/JComboBoxTextCellReader.kt",
      "extension" : "kt",
      "linesOfCode" : 17,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 8
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/textCellRenderers/JListTextCellReader.kt",
      "extension" : "kt",
      "linesOfCode" : 21,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/utils/SerializationUtils.kt",
      "extension" : "kt",
      "linesOfCode" : 26,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/mouse/MouseMoveOperation.kt",
      "extension" : "kt",
      "linesOfCode" : 29,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/keyboard/TextHotKeyStepModel.kt",
      "extension" : "kt",
      "linesOfCode" : 39,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 23
    }, {
      "relativePath" : "ide-launcher/src/main/kotlin/com/intellij/remoterobot/launcher/Ide.kt",
      "extension" : "kt",
      "linesOfCode" : 40,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/TextParser.kt",
      "extension" : "kt",
      "linesOfCode" : 46,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 23
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/ComboBoxFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 56,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 6
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/data/ObjectContainer.kt",
      "extension" : "kt",
      "linesOfCode" : 63,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/js/RhinoJavaScriptExecutor.kt",
      "extension" : "kt",
      "linesOfCode" : 78,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/utils/KeyboardUtils.kt",
      "extension" : "kt",
      "linesOfCode" : 93,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "ide-launcher/src/main/kotlin/com/intellij/remoterobot/launcher/utils.kt",
      "extension" : "kt",
      "linesOfCode" : 103,
      "unitsCount" : 5,
      "unitsMcCabeIndexSum" : 7,
      "linesOfCodeInUnits" : 84
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/dialogs/CreateNewCommonStepDialogWrapper.kt",
      "extension" : "kt",
      "linesOfCode" : 138,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 47
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/RobotEventService.kt",
      "extension" : "kt",
      "linesOfCode" : 169,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 32
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
      "extension" : "kt",
      "linesOfCode" : 355,
      "unitsCount" : 26,
      "unitsMcCabeIndexSum" : 49,
      "linesOfCodeInUnits" : 298
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/StepModel.kt",
      "extension" : "kt",
      "linesOfCode" : 5,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/mouse/MouseEventOperation.kt",
      "extension" : "kt",
      "linesOfCode" : 5,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    } ],
    "filesWithMostContributors" : [ {
      "relativePath" : "robot-server-plugin/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 76,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 37,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "robot-server-core/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 47,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "test-recorder/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 42,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-fixtures/build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 40,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "build.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 65,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
      "extension" : "kt",
      "linesOfCode" : 368,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 278
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/RecordUITestModel.kt",
      "extension" : "kt",
      "linesOfCode" : 100,
      "unitsCount" : 5,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 14
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/RecordUITestFrame.kt",
      "extension" : "kt",
      "linesOfCode" : 207,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 7,
      "linesOfCodeInUnits" : 13
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JTreeFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 167,
      "unitsCount" : 7,
      "unitsMcCabeIndexSum" : 8,
      "linesOfCodeInUnits" : 51
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/mouse/MouseClickOperation.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/dialogs/CreateNewMouseEventStepDialogWrapper.kt",
      "extension" : "kt",
      "linesOfCode" : 147,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 48
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/CommonContainerFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 157,
      "unitsCount" : 5,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 11
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/dialogs/CreateNewHotKeyDialogWrapper.kt",
      "extension" : "kt",
      "linesOfCode" : 45,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 18
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JCefBrowserFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 241,
      "unitsCount" : 7,
      "unitsMcCabeIndexSum" : 8,
      "linesOfCodeInUnits" : 24
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/Fixture.kt",
      "extension" : "kt",
      "linesOfCode" : 130,
      "unitsCount" : 10,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 55
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/RemoteRobot.kt",
      "extension" : "kt",
      "linesOfCode" : 239,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 4
    }, {
      "relativePath" : "settings.gradle.kts",
      "extension" : "kts",
      "linesOfCode" : 8,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "ide-launcher/src/main/kotlin/com/intellij/remoterobot/launcher/IdeLauncher.kt",
      "extension" : "kt",
      "linesOfCode" : 140,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/TextEditorFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 228,
      "unitsCount" : 9,
      "unitsMcCabeIndexSum" : 14,
      "linesOfCodeInUnits" : 122
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/keyboard/TextHotKeyStepModel.kt",
      "extension" : "kt",
      "linesOfCode" : 39,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 23
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/dialogs/CreateNewCommonStepDialogWrapper.kt",
      "extension" : "kt",
      "linesOfCode" : 138,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 47
    }, {
      "relativePath" : "ide-launcher/src/main/kotlin/com/intellij/remoterobot/launcher/Ide.kt",
      "extension" : "kt",
      "linesOfCode" : 40,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "ide-launcher/src/main/kotlin/com/intellij/remoterobot/launcher/utils.kt",
      "extension" : "kt",
      "linesOfCode" : 103,
      "unitsCount" : 5,
      "unitsMcCabeIndexSum" : 7,
      "linesOfCodeInUnits" : 84
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/js/RhinoJavaScriptExecutor.kt",
      "extension" : "kt",
      "linesOfCode" : 78,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
      "extension" : "kt",
      "linesOfCode" : 355,
      "unitsCount" : 26,
      "unitsMcCabeIndexSum" : 49,
      "linesOfCodeInUnits" : 298
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/keyboard/TextTypingStepModel.kt",
      "extension" : "kt",
      "linesOfCode" : 25,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/common/CommonStepModel.kt",
      "extension" : "kt",
      "linesOfCode" : 59,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/LocatorGenerator.kt",
      "extension" : "kt",
      "linesOfCode" : 186,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 4
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/xpath/XpathDataModelCreator.kt",
      "extension" : "kt",
      "linesOfCode" : 276,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 20
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/steps/CommonSteps.kt",
      "extension" : "kt",
      "linesOfCode" : 104,
      "unitsCount" : 7,
      "unitsMcCabeIndexSum" : 10,
      "linesOfCodeInUnits" : 63
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JMenuBarFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 77,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 7
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/TextToKeyCache.kt",
      "extension" : "kt",
      "linesOfCode" : 61,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 12,
      "linesOfCodeInUnits" : 49
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/ComponentFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 72,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 6
    }, {
      "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerStarter.kt",
      "extension" : "kt",
      "linesOfCode" : 18,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 10
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/mouse/MouseEventStepModel.kt",
      "extension" : "kt",
      "linesOfCode" : 39,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 8
    }, {
      "relativePath" : "ide-launcher/src/main/kotlin/com/intellij/remoterobot/launcher/IdeDownloader.kt",
      "extension" : "kt",
      "linesOfCode" : 113,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 13
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/client/IdeRobotApi.kt",
      "extension" : "kt",
      "linesOfCode" : 50,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/client/IdeRobotClient.kt",
      "extension" : "kt",
      "linesOfCode" : 112,
      "unitsCount" : 20,
      "unitsMcCabeIndexSum" : 20,
      "linesOfCodeInUnits" : 60
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/mouse/MouseMoveOperation.kt",
      "extension" : "kt",
      "linesOfCode" : 29,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/ComboBoxFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 56,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 6
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/utils/KeyboardUtils.kt",
      "extension" : "kt",
      "linesOfCode" : 93,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/textCellRenderers/JListTextCellReader.kt",
      "extension" : "kt",
      "linesOfCode" : 21,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/textCellRenderers/JComboBoxTextCellReader.kt",
      "extension" : "kt",
      "linesOfCode" : 17,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 8
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/TextParser.kt",
      "extension" : "kt",
      "linesOfCode" : 46,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 23
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/data/ObjectContainer.kt",
      "extension" : "kt",
      "linesOfCode" : 63,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/utils/SerializationUtils.kt",
      "extension" : "kt",
      "linesOfCode" : 26,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/utils.kt",
      "extension" : "kt",
      "linesOfCode" : 27,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/mouse/MouseEventOperation.kt",
      "extension" : "kt",
      "linesOfCode" : 5,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/StepModel.kt",
      "extension" : "kt",
      "linesOfCode" : 5,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    } ],
    "filesWithLeastContributors" : [ {
      "relativePath" : "remote-robot/src/main/resources/api/ContextApi.ts",
      "extension" : "ts",
      "linesOfCode" : 1092,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/robot/SmoothRobot.kt",
      "extension" : "kt",
      "linesOfCode" : 334,
      "unitsCount" : 52,
      "unitsMcCabeIndexSum" : 58,
      "linesOfCodeInUnits" : 208
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/ExtractorGraphics2d.kt",
      "extension" : "kt",
      "linesOfCode" : 229,
      "unitsCount" : 61,
      "unitsMcCabeIndexSum" : 61,
      "linesOfCodeInUnits" : 214
    }, {
      "relativePath" : "robot-server-plugin/src/main/resources/static/xpathEditor.js",
      "extension" : "js",
      "linesOfCode" : 227,
      "unitsCount" : 17,
      "unitsMcCabeIndexSum" : 52,
      "linesOfCodeInUnits" : 221
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/JavaScriptApi.kt",
      "extension" : "kt",
      "linesOfCode" : 179,
      "unitsCount" : 16,
      "unitsMcCabeIndexSum" : 16,
      "linesOfCodeInUnits" : 143
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/RobotEventService.kt",
      "extension" : "kt",
      "linesOfCode" : 169,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 32
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/utils/RepeatUtils.kt",
      "extension" : "kt",
      "linesOfCode" : 131,
      "unitsCount" : 7,
      "unitsMcCabeIndexSum" : 18,
      "linesOfCodeInUnits" : 102
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/DataExtractorGraphics2d.kt",
      "extension" : "kt",
      "linesOfCode" : 89,
      "unitsCount" : 9,
      "unitsMcCabeIndexSum" : 13,
      "linesOfCodeInUnits" : 50
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/SearchContext.kt",
      "extension" : "kt",
      "linesOfCode" : 67,
      "unitsCount" : 6,
      "unitsMcCabeIndexSum" : 7,
      "linesOfCodeInUnits" : 46
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/LambdaApi.kt",
      "extension" : "kt",
      "linesOfCode" : 65,
      "unitsCount" : 6,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 39
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/LambdaLoader.kt",
      "extension" : "kt",
      "linesOfCode" : 64,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 21
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JPopupMenuFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 63,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/encryption/AesEncryptor.kt",
      "extension" : "kt",
      "linesOfCode" : 60,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 36
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/utils/RelativeLocators.kt",
      "extension" : "kt",
      "linesOfCode" : 57,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/CellReaderGraphics2d.kt",
      "extension" : "kt",
      "linesOfCode" : 52,
      "unitsCount" : 9,
      "unitsMcCabeIndexSum" : 13,
      "linesOfCodeInUnits" : 42
    }, {
      "relativePath" : "robot-server-plugin/src/main/resources/static/styles.css",
      "extension" : "css",
      "linesOfCode" : 48,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/search/Finder.kt",
      "extension" : "kt",
      "linesOfCode" : 45,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 6,
      "linesOfCodeInUnits" : 32
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/data/RobotContext.kt",
      "extension" : "kt",
      "linesOfCode" : 44,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 5
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/ActionButtonFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 43,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JButtonFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 38,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/TextFixtureDelegator.kt",
      "extension" : "kt",
      "linesOfCode" : 36,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JCheckboxFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 34,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JTableFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 33,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JTextFieldFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 32,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 3
    }, {
      "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/RecorderService.kt",
      "extension" : "kt",
      "linesOfCode" : 31,
      "unitsCount" : 3,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 17
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JLabelFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 30,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JRadioButtonFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 30,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 5,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/xpath/XpathUtils.kt",
      "extension" : "kt",
      "linesOfCode" : 28,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/lux/LuxComponentParser.kt",
      "extension" : "kt",
      "linesOfCode" : 26,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/stepsProcessing/StepWorker.kt",
      "extension" : "kt",
      "linesOfCode" : 26,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 18
    }, {
      "relativePath" : "robot-server-plugin/src/main/resources/static/updateButton.js",
      "extension" : "js",
      "linesOfCode" : 25,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 3,
      "linesOfCodeInUnits" : 23
    }, {
      "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/xpath/XpathSearcher.kt",
      "extension" : "kt",
      "linesOfCode" : 24,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 14
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/stepsProcessing/StepLogger.kt",
      "extension" : "kt",
      "linesOfCode" : 24,
      "unitsCount" : 4,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 12
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JTextAreaFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 23,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 3
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/data/RemoteComponent.kt",
      "extension" : "kt",
      "linesOfCode" : 22,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/textCellRenderers/JTableTextCellReader.kt",
      "extension" : "kt",
      "linesOfCode" : 21,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/ActionLinkFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 20,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/ContainerFixture.kt",
      "extension" : "kt",
      "linesOfCode" : 20,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/search/locators/Locator.kt",
      "extension" : "kt",
      "linesOfCode" : 20,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/TextDataPredicates.kt",
      "extension" : "kt",
      "linesOfCode" : 19,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "ide-launcher/src/main/kotlin/com/intellij/remoterobot/launcher/Os.kt",
      "extension" : "kt",
      "linesOfCode" : 15,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 4,
      "linesOfCodeInUnits" : 9
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/utils/LoggingUtils.kt",
      "extension" : "kt",
      "linesOfCode" : 15,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/encryption/EncryptorFactory.kt",
      "extension" : "kt",
      "linesOfCode" : 14,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/utils/ComponentLookupExceptionSerializer.kt",
      "extension" : "kt",
      "linesOfCode" : 13,
      "unitsCount" : 1,
      "unitsMcCabeIndexSum" : 1,
      "linesOfCodeInUnits" : 5
    }, {
      "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/utils/Utils.kt",
      "extension" : "kt",
      "linesOfCode" : 11,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "test-recorder/src/main/resources/META-INF/plugin.xml",
      "extension" : "xml",
      "linesOfCode" : 10,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-fixtures/src/main/resources/META-INF/plugin.xml",
      "extension" : "xml",
      "linesOfCode" : 10,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "robot-server-core/src/main/resources/META-INF/plugin.xml",
      "extension" : "xml",
      "linesOfCode" : 10,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    }, {
      "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/data/js/ExecuteScriptRequest.kt",
      "extension" : "kt",
      "linesOfCode" : 10,
      "unitsCount" : 2,
      "unitsMcCabeIndexSum" : 2,
      "linesOfCodeInUnits" : 6
    }, {
      "relativePath" : "remote-robot/src/main/resources/META-INF/plugin.xml",
      "extension" : "xml",
      "linesOfCode" : 10,
      "unitsCount" : 0,
      "unitsMcCabeIndexSum" : 0,
      "linesOfCodeInUnits" : 0
    } ],
    "firstDate" : "2020-10-07",
    "latestDate" : "2025-03-03",
    "daysBetweenFirstAndLastDate" : 1609,
    "weeks" : 229,
    "estimatedWorkindDays" : 1145,
    "activeDays" : 205,
    "ageInDays" : 1930,
    "historyPerExtensionPerYear" : [ {
      "extension" : "md",
      "year" : "2020",
      "commitsCount" : 9,
      "contributors" : [ "jgafner@gmail.com", "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "md",
      "year" : "2022",
      "commitsCount" : 11,
      "contributors" : [ "64742703+damien-urruty-sonarsource@users.noreply.github.com", "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "md",
      "year" : "2021",
      "commitsCount" : 27,
      "contributors" : [ "matthew.michihara@gmail.com", "jakub.chrzanowski@jetbrains.com", "eugene.nizienko@jetbrains.com", "vladislav.shishov@jetbrains.com", "mikhail.kuznetsov@jetbrains.com" ]
    }, {
      "extension" : "md",
      "year" : "2024",
      "commitsCount" : 2,
      "contributors" : [ "eugene.nizienko@gmail.com", "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "md",
      "year" : "2023",
      "commitsCount" : 7,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "bat",
      "year" : "2021",
      "commitsCount" : 1,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "bat",
      "year" : "2023",
      "commitsCount" : 1,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "js",
      "year" : "2023",
      "commitsCount" : 2,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "js",
      "year" : "2021",
      "commitsCount" : 2,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "js",
      "year" : "2020",
      "commitsCount" : 1,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "gradle",
      "year" : "2023",
      "commitsCount" : 11,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "png",
      "year" : "2020",
      "commitsCount" : 1,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "gradle",
      "year" : "2024",
      "commitsCount" : 2,
      "contributors" : [ "eugene.nizienko@gmail.com", "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "gradle",
      "year" : "2021",
      "commitsCount" : 20,
      "contributors" : [ "eugene.nizienko@jetbrains.com", "vladislav.shishov@jetbrains.com" ]
    }, {
      "extension" : "gradle",
      "year" : "2022",
      "commitsCount" : 6,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "css",
      "year" : "2020",
      "commitsCount" : 1,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "gradle",
      "year" : "2020",
      "commitsCount" : 7,
      "contributors" : [ "jgafner@gmail.com", "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "kts",
      "year" : "2021",
      "commitsCount" : 26,
      "contributors" : [ "alfredbr@amazon.com", "jakub.chrzanowski@jetbrains.com", "47592197+fxnm@users.noreply.github.com", "eugene.nizienko@jetbrains.com", "vladislav.shishov@jetbrains.com" ]
    }, {
      "extension" : "kts",
      "year" : "2020",
      "commitsCount" : 6,
      "contributors" : [ "jgafner@gmail.com", "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "kts",
      "year" : "2023",
      "commitsCount" : 9,
      "contributors" : [ "eugene.nizienko@jetbrains.com", "mikhail.kuznetsov@jetbrains.com" ]
    }, {
      "extension" : "kts",
      "year" : "2022",
      "commitsCount" : 19,
      "contributors" : [ "elena.artamonova@jetbrains.com", "eugene.nizienko@jetbrains.com", "vladislav.shishov@jetbrains.com", "vshov@hotmail.com", "mikhail.kuznetsov@jetbrains.com" ]
    }, {
      "extension" : "kts",
      "year" : "2025",
      "commitsCount" : 6,
      "contributors" : [ "eugene.nizienko@jetbrains.com", "evgenii.novozhilov@jetbrains.com" ]
    }, {
      "extension" : "kt~head",
      "year" : "2020",
      "commitsCount" : 1,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "kts",
      "year" : "2024",
      "commitsCount" : 1,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "gradle",
      "year" : "2025",
      "commitsCount" : 1,
      "contributors" : [ "evgenii.novozhilov@jetbrains.com" ]
    }, {
      "extension" : "java",
      "year" : "2021",
      "commitsCount" : 11,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "yaml",
      "year" : "2024",
      "commitsCount" : 1,
      "contributors" : [ "arun@arun.blog" ]
    }, {
      "extension" : "xml",
      "year" : "2023",
      "commitsCount" : 1,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "java",
      "year" : "2020",
      "commitsCount" : 5,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "yaml",
      "year" : "2023",
      "commitsCount" : 6,
      "contributors" : [ "eugene.nizienko@jetbrains.com", "vladislav.shishov@jetbrains.com" ]
    }, {
      "extension" : "yaml",
      "year" : "2022",
      "commitsCount" : 19,
      "contributors" : [ "eugene.nizienko@jetbrains.com", "vladislav.shishov@jetbrains.com", "mikhail.kuznetsov@jetbrains.com" ]
    }, {
      "extension" : "yaml",
      "year" : "2021",
      "commitsCount" : 33,
      "contributors" : [ "jakub.chrzanowski@jetbrains.com", "nizienko@outlook.com", "eugene.nizienko@jetbrains.com", "vladislav.shishov@jetbrains.com" ]
    }, {
      "extension" : "xml",
      "year" : "2022",
      "commitsCount" : 4,
      "contributors" : [ "eugene.nizienko@jetbrains.com", "vladislav.shishov@jetbrains.com" ]
    }, {
      "extension" : "xml",
      "year" : "2020",
      "commitsCount" : 3,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "ts",
      "year" : "2021",
      "commitsCount" : 1,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "ts",
      "year" : "2020",
      "commitsCount" : 2,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "xml",
      "year" : "2025",
      "commitsCount" : 4,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "kt",
      "year" : "2021",
      "commitsCount" : 89,
      "contributors" : [ "alfredbr@amazon.com", "olkornii@redhat.com", "eugene.nizienko@jetbrains.com", "vladislav.shishov@jetbrains.com", "mikhail.kuznetsov@jetbrains.com" ]
    }, {
      "extension" : "kt",
      "year" : "2022",
      "commitsCount" : 66,
      "contributors" : [ "elena.artamonova@jetbrains.com", "eugene.nizienko@jetbrains.com", "vladislav.shishov@jetbrains.com", "vshov@hotmail.com", "mikhail.kuznetsov@jetbrains.com" ]
    }, {
      "extension" : "kt",
      "year" : "2020",
      "commitsCount" : 13,
      "contributors" : [ "jgafner@gmail.com", "eugene.nizienko@jetbrains.com", "vladislav.shishov@jetbrains.com" ]
    }, {
      "extension" : "kt",
      "year" : "2025",
      "commitsCount" : 2,
      "contributors" : [ "evgenii.novozhilov@jetbrains.com" ]
    }, {
      "extension" : "kt",
      "year" : "2023",
      "commitsCount" : 35,
      "contributors" : [ "aroram18@mcmaster.ca", "rodion.iafarov@jetbrains.com", "eugene.nizienko@jetbrains.com", "vladislav.shishov@jetbrains.com", "mikhail.kuznetsov@jetbrains.com" ]
    }, {
      "extension" : "kt",
      "year" : "2024",
      "commitsCount" : 9,
      "contributors" : [ "daniiltimashov30@gmail.com", "eugene.nizienko@gmail.com", "rodion.iafarov@jetbrains.com", "eugene.nizienko@jetbrains.com", "alexpl292@gmail.com", "vladislav.shishov@jetbrains.com" ]
    }, {
      "extension" : "properties",
      "year" : "2020",
      "commitsCount" : 3,
      "contributors" : [ "jgafner@gmail.com", "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "gif",
      "year" : "2020",
      "commitsCount" : 1,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "jar",
      "year" : "2021",
      "commitsCount" : 1,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "jar",
      "year" : "2022",
      "commitsCount" : 1,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "jar",
      "year" : "2023",
      "commitsCount" : 1,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "api",
      "year" : "2023",
      "commitsCount" : 5,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "api",
      "year" : "2022",
      "commitsCount" : 5,
      "contributors" : [ "eugene.nizienko@jetbrains.com", "vladislav.shishov@jetbrains.com", "mikhail.kuznetsov@jetbrains.com" ]
    }, {
      "extension" : "properties",
      "year" : "2025",
      "commitsCount" : 2,
      "contributors" : [ "evgenii.novozhilov@jetbrains.com" ]
    }, {
      "extension" : "api",
      "year" : "2024",
      "commitsCount" : 2,
      "contributors" : [ "eugene.nizienko@jetbrains.com", "vladislav.shishov@jetbrains.com" ]
    }, {
      "extension" : "properties",
      "year" : "2024",
      "commitsCount" : 2,
      "contributors" : [ "eugene.nizienko@gmail.com", "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "",
      "year" : "2021",
      "commitsCount" : 1,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "properties",
      "year" : "2023",
      "commitsCount" : 6,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "java",
      "year" : "2024",
      "commitsCount" : 1,
      "contributors" : [ "eugene.nizienko@gmail.com" ]
    }, {
      "extension" : "",
      "year" : "2020",
      "commitsCount" : 1,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "properties",
      "year" : "2022",
      "commitsCount" : 8,
      "contributors" : [ "eugene.nizienko@jetbrains.com", "vladislav.shishov@jetbrains.com" ]
    }, {
      "extension" : "java",
      "year" : "2023",
      "commitsCount" : 2,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "",
      "year" : "2023",
      "commitsCount" : 1,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "properties",
      "year" : "2021",
      "commitsCount" : 15,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    }, {
      "extension" : "java",
      "year" : "2022",
      "commitsCount" : 12,
      "contributors" : [ "eugene.nizienko@jetbrains.com", "vladislav.shishov@jetbrains.com", "mikhail.kuznetsov@jetbrains.com" ]
    }, {
      "extension" : "",
      "year" : "2022",
      "commitsCount" : 1,
      "contributors" : [ "eugene.nizienko@jetbrains.com" ]
    } ]
  },
  "unitsAnalysisResults" : {
    "totalNumberOfUnits" : 400,
    "linesOfCodeInUnits" : 2946,
    "unitSizeRiskDistribution" : {
      "key" : "",
      "lowRiskThreshold" : 10,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 1494,
      "lowRiskValue" : 662,
      "mediumRiskValue" : 460,
      "highRiskValue" : 52,
      "veryHighRiskValue" : 278,
      "lowRiskCount" : 45,
      "negligibleRiskCount" : 336,
      "mediumRiskCount" : 17,
      "highRiskCount" : 1,
      "veryHighRiskCount" : 1,
      "negligibleRiskLabel" : "1-10",
      "lowRiskLabel" : "11-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 50.712830957230146,
      "veryHighRiskPercentage" : 9.436524100475221,
      "highRiskPercentage" : 1.7651052274270196,
      "mediumRiskPercentage" : 15.614392396469789,
      "lowRiskPercentage" : 22.47114731839783,
      "totalValue" : 2946,
      "totalCount" : 400
    },
    "conditionalComplexityRiskDistribution" : {
      "key" : "",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 10,
      "highRiskThreshold" : 25,
      "veryHighRiskThreshold" : 50,
      "negligibleRiskValue" : 2794,
      "lowRiskValue" : 152,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 7,
      "negligibleRiskCount" : 393,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-10",
      "mediumRiskLabel" : "11-25",
      "highRiskLabel" : "26-50",
      "veryHighRiskLabel" : "51+",
      "negligibleRiskPercentage" : 94.84046164290564,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 5.159538357094365,
      "totalValue" : 2946,
      "totalCount" : 400
    },
    "unitSizeRiskDistributionPerExtension" : [ {
      "key" : "kt",
      "lowRiskThreshold" : 10,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 1436,
      "lowRiskValue" : 601,
      "mediumRiskValue" : 330,
      "highRiskValue" : 52,
      "veryHighRiskValue" : 278,
      "lowRiskCount" : 41,
      "negligibleRiskCount" : 325,
      "mediumRiskCount" : 12,
      "highRiskCount" : 1,
      "veryHighRiskCount" : 1,
      "negligibleRiskLabel" : "1-10",
      "lowRiskLabel" : "11-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 53.24434556915091,
      "veryHighRiskPercentage" : 10.307749351130886,
      "highRiskPercentage" : 1.92806822395254,
      "mediumRiskPercentage" : 12.235817575083425,
      "lowRiskPercentage" : 22.28401928068224,
      "totalValue" : 2697,
      "totalCount" : 380
    }, {
      "key" : "js",
      "lowRiskThreshold" : 10,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 58,
      "lowRiskValue" : 61,
      "mediumRiskValue" : 130,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 4,
      "negligibleRiskCount" : 11,
      "mediumRiskCount" : 5,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-10",
      "lowRiskLabel" : "11-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 23.29317269076305,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 52.208835341365464,
      "lowRiskPercentage" : 24.497991967871485,
      "totalValue" : 249,
      "totalCount" : 20
    } ],
    "unitSizeRiskDistributionPerComponent" : [ [ {
      "key" : "robot-server-plugin",
      "lowRiskThreshold" : 10,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 73,
      "lowRiskValue" : 61,
      "mediumRiskValue" : 130,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 278,
      "lowRiskCount" : 4,
      "negligibleRiskCount" : 13,
      "mediumRiskCount" : 5,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 1,
      "negligibleRiskLabel" : "1-10",
      "lowRiskLabel" : "11-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 13.468634686346864,
      "veryHighRiskPercentage" : 51.291512915129154,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 23.985239852398525,
      "lowRiskPercentage" : 11.254612546125461,
      "totalValue" : 542,
      "totalCount" : 23
    }, {
      "key" : "test-recorder",
      "lowRiskThreshold" : 10,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 135,
      "lowRiskValue" : 45,
      "mediumRiskValue" : 97,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 3,
      "negligibleRiskCount" : 30,
      "mediumRiskCount" : 3,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-10",
      "lowRiskLabel" : "11-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 48.73646209386282,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 35.018050541516246,
      "lowRiskPercentage" : 16.24548736462094,
      "totalValue" : 277,
      "totalCount" : 36
    }, {
      "key" : "remote-fixtures",
      "lowRiskThreshold" : 10,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 208,
      "lowRiskValue" : 116,
      "mediumRiskValue" : 78,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 8,
      "negligibleRiskCount" : 49,
      "mediumRiskCount" : 3,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-10",
      "lowRiskLabel" : "11-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 51.74129353233831,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 19.402985074626866,
      "lowRiskPercentage" : 28.855721393034827,
      "totalValue" : 402,
      "totalCount" : 60
    }, {
      "key" : "ide-launcher",
      "lowRiskThreshold" : 10,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 41,
      "lowRiskValue" : 20,
      "mediumRiskValue" : 0,
      "highRiskValue" : 52,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 1,
      "negligibleRiskCount" : 7,
      "mediumRiskCount" : 0,
      "highRiskCount" : 1,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-10",
      "lowRiskLabel" : "11-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 36.283185840707965,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 46.017699115044245,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 17.699115044247787,
      "totalValue" : 113,
      "totalCount" : 9
    }, {
      "key" : "robot-server-core",
      "lowRiskThreshold" : 10,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 304,
      "lowRiskValue" : 243,
      "mediumRiskValue" : 43,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 17,
      "negligibleRiskCount" : 72,
      "mediumRiskCount" : 2,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-10",
      "lowRiskLabel" : "11-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 51.52542372881356,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 7.288135593220339,
      "lowRiskPercentage" : 41.186440677966104,
      "totalValue" : 590,
      "totalCount" : 91
    }, {
      "key" : "remote-robot",
      "lowRiskThreshold" : 10,
      "mediumRiskThreshold" : 20,
      "highRiskThreshold" : 50,
      "veryHighRiskThreshold" : 100,
      "negligibleRiskValue" : 733,
      "lowRiskValue" : 177,
      "mediumRiskValue" : 112,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 12,
      "negligibleRiskCount" : 165,
      "mediumRiskCount" : 4,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-10",
      "lowRiskLabel" : "11-20",
      "mediumRiskLabel" : "21-50",
      "highRiskLabel" : "51-100",
      "veryHighRiskLabel" : "101+",
      "negligibleRiskPercentage" : 71.72211350293541,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 10.95890410958904,
      "lowRiskPercentage" : 17.31898238747554,
      "totalValue" : 1022,
      "totalCount" : 181
    } ] ],
    "longestUnits" : [ {
      "shortName" : "fun startServer()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 368,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 278
      },
      "startLine" : 37,
      "endLine" : 327,
      "linesOfCode" : 278,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun extractDmgApp()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "ide-launcher/src/main/kotlin/com/intellij/remoterobot/launcher/utils.kt",
        "extension" : "kt",
        "linesOfCode" : 103,
        "unitsCount" : 5,
        "unitsMcCabeIndexSum" : 7,
        "linesOfCodeInUnits" : 84
      },
      "startLine" : 52,
      "endLine" : 109,
      "linesOfCode" : 52,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun createCenterPanel()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/dialogs/CreateNewMouseEventStepDialogWrapper.kt",
        "extension" : "kt",
        "linesOfCode" : 147,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 48
      },
      "startLine" : 37,
      "endLine" : 78,
      "linesOfCode" : 42,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "constructor()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-plugin/src/main/resources/static/xpathEditor.js",
        "extension" : "js",
        "linesOfCode" : 227,
        "unitsCount" : 17,
        "unitsMcCabeIndexSum" : 52,
        "linesOfCodeInUnits" : 221
      },
      "startLine" : 76,
      "endLine" : 126,
      "linesOfCode" : 39,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun init()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/TextToKeyCache.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 12,
        "linesOfCodeInUnits" : 49
      },
      "startLine" : 11,
      "endLine" : 50,
      "linesOfCode" : 37,
      "mcCabeIndex" : 7,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun getIcons()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/TextEditorFixture.kt",
        "extension" : "kt",
        "linesOfCode" : 228,
        "unitsCount" : 9,
        "unitsMcCabeIndexSum" : 14,
        "linesOfCodeInUnits" : 122
      },
      "startLine" : 66,
      "endLine" : 100,
      "linesOfCode" : 35,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun createCenterPanel()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/dialogs/CreateNewCommonStepDialogWrapper.kt",
        "extension" : "kt",
        "linesOfCode" : 138,
        "unitsCount" : 3,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 47
      },
      "startLine" : 36,
      "endLine" : 68,
      "linesOfCode" : 32,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun  waitFor()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/utils/RepeatUtils.kt",
        "extension" : "kt",
        "linesOfCode" : 131,
        "unitsCount" : 7,
        "unitsMcCabeIndexSum" : 18,
        "linesOfCodeInUnits" : 102
      },
      "startLine" : 57,
      "endLine" : 86,
      "linesOfCode" : 30,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "generate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-plugin/src/main/resources/static/xpathEditor.js",
        "extension" : "js",
        "linesOfCode" : 227,
        "unitsCount" : 17,
        "unitsMcCabeIndexSum" : 52,
        "linesOfCodeInUnits" : 221
      },
      "startLine" : 134,
      "endLine" : 156,
      "linesOfCode" : 23,
      "mcCabeIndex" : 5,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "_isGoodAndUnique()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-plugin/src/main/resources/static/xpathEditor.js",
        "extension" : "js",
        "linesOfCode" : 227,
        "unitsCount" : 17,
        "unitsMcCabeIndexSum" : 52,
        "linesOfCodeInUnits" : 221
      },
      "startLine" : 210,
      "endLine" : 232,
      "linesOfCode" : 23,
      "mcCabeIndex" : 8,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "_formatAttributes()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-plugin/src/main/resources/static/xpathEditor.js",
        "extension" : "js",
        "linesOfCode" : 227,
        "unitsCount" : 17,
        "unitsMcCabeIndexSum" : 52,
        "linesOfCodeInUnits" : 221
      },
      "startLine" : 234,
      "endLine" : 257,
      "linesOfCode" : 23,
      "mcCabeIndex" : 9,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun activate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/RobotEventService.kt",
        "extension" : "kt",
        "linesOfCode" : 169,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 32
      },
      "startLine" : 43,
      "endLine" : 67,
      "linesOfCode" : 23,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun repeatInTime()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/utils/RepeatUtils.kt",
        "extension" : "kt",
        "linesOfCode" : 131,
        "unitsCount" : 7,
        "unitsMcCabeIndexSum" : 18,
        "linesOfCodeInUnits" : 102
      },
      "startLine" : 88,
      "endLine" : 110,
      "linesOfCode" : 23,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "checkXpath()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-plugin/src/main/resources/static/xpathEditor.js",
        "extension" : "js",
        "linesOfCode" : 227,
        "unitsCount" : 17,
        "unitsMcCabeIndexSum" : 52,
        "linesOfCodeInUnits" : 221
      },
      "startLine" : 38,
      "endLine" : 60,
      "linesOfCode" : 22,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun openProject()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/steps/CommonSteps.kt",
        "extension" : "kt",
        "linesOfCode" : 104,
        "unitsCount" : 7,
        "unitsMcCabeIndexSum" : 10,
        "linesOfCodeInUnits" : 63
      },
      "startLine" : 51,
      "endLine" : 75,
      "linesOfCode" : 22,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun findParentOf()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
        "extension" : "kt",
        "linesOfCode" : 355,
        "unitsCount" : 26,
        "unitsMcCabeIndexSum" : 49,
        "linesOfCodeInUnits" : 298
      },
      "startLine" : 81,
      "endLine" : 105,
      "linesOfCode" : 22,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun  find()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/SearchContext.kt",
        "extension" : "kt",
        "linesOfCode" : 67,
        "unitsCount" : 6,
        "unitsMcCabeIndexSum" : 7,
        "linesOfCodeInUnits" : 46
      },
      "startLine" : 48,
      "endLine" : 71,
      "linesOfCode" : 22,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun replaceText()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/TextEditorFixture.kt",
        "extension" : "kt",
        "linesOfCode" : 228,
        "unitsCount" : 9,
        "unitsMcCabeIndexSum" : 14,
        "linesOfCodeInUnits" : 122
      },
      "startLine" : 196,
      "endLine" : 219,
      "linesOfCode" : 21,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun retrieveAny()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
        "extension" : "kt",
        "linesOfCode" : 355,
        "unitsCount" : 26,
        "unitsMcCabeIndexSum" : 49,
        "linesOfCodeInUnits" : 298
      },
      "startLine" : 343,
      "endLine" : 364,
      "linesOfCode" : 21,
      "mcCabeIndex" : 6,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "_generateMiddleSkippedPaths()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-plugin/src/main/resources/static/xpathEditor.js",
        "extension" : "js",
        "linesOfCode" : 227,
        "unitsCount" : 17,
        "unitsMcCabeIndexSum" : 52,
        "linesOfCodeInUnits" : 221
      },
      "startLine" : 188,
      "endLine" : 208,
      "linesOfCode" : 20,
      "mcCabeIndex" : 5,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun processKeyEvent()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/keyboard/TextHotKeyStepModel.kt",
        "extension" : "kt",
        "linesOfCode" : 39,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 10,
        "linesOfCodeInUnits" : 23
      },
      "startLine" : 20,
      "endLine" : 39,
      "linesOfCode" : 20,
      "mcCabeIndex" : 9,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun selectText()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/TextEditorFixture.kt",
        "extension" : "kt",
        "linesOfCode" : 228,
        "unitsCount" : 9,
        "unitsMcCabeIndexSum" : 14,
        "linesOfCodeInUnits" : 122
      },
      "startLine" : 221,
      "endLine" : 243,
      "linesOfCode" : 20,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun extractTar()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "ide-launcher/src/main/kotlin/com/intellij/remoterobot/launcher/utils.kt",
        "extension" : "kt",
        "linesOfCode" : 103,
        "unitsCount" : 5,
        "unitsMcCabeIndexSum" : 7,
        "linesOfCodeInUnits" : 84
      },
      "startLine" : 7,
      "endLine" : 26,
      "linesOfCode" : 20,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun decrypt()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/encryption/AesEncryptor.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 36
      },
      "startLine" : 44,
      "endLine" : 64,
      "linesOfCode" : 20,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun moveMouse()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/robot/SmoothRobot.kt",
        "extension" : "kt",
        "linesOfCode" : 334,
        "unitsCount" : 52,
        "unitsMcCabeIndexSum" : 58,
        "linesOfCodeInUnits" : 208
      },
      "startLine" : 238,
      "endLine" : 257,
      "linesOfCode" : 19,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun retrieveAny()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
        "extension" : "kt",
        "linesOfCode" : 355,
        "unitsCount" : 26,
        "unitsMcCabeIndexSum" : 49,
        "linesOfCodeInUnits" : 298
      },
      "startLine" : 323,
      "endLine" : 341,
      "linesOfCode" : 19,
      "mcCabeIndex" : 6,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun executeInEDT()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
        "extension" : "kt",
        "linesOfCode" : 355,
        "unitsCount" : 26,
        "unitsMcCabeIndexSum" : 49,
        "linesOfCodeInUnits" : 298
      },
      "startLine" : 272,
      "endLine" : 288,
      "linesOfCode" : 17,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "function launchUpdate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-plugin/src/main/resources/static/updateButton.js",
        "extension" : "js",
        "linesOfCode" : 25,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 23
      },
      "startLine" : 14,
      "endLine" : 30,
      "linesOfCode" : 16,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun insertTextAtLine()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/TextEditorFixture.kt",
        "extension" : "kt",
        "linesOfCode" : 228,
        "unitsCount" : 9,
        "unitsMcCabeIndexSum" : 14,
        "linesOfCodeInUnits" : 122
      },
      "startLine" : 177,
      "endLine" : 194,
      "linesOfCode" : 16,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun expandAllExcept()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JTreeFixture.kt",
        "extension" : "kt",
        "linesOfCode" : 167,
        "unitsCount" : 7,
        "unitsMcCabeIndexSum" : 8,
        "linesOfCodeInUnits" : 51
      },
      "startLine" : 157,
      "endLine" : 173,
      "linesOfCode" : 16,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun invokeAction()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/steps/CommonSteps.kt",
        "extension" : "kt",
        "linesOfCode" : 104,
        "unitsCount" : 7,
        "unitsMcCabeIndexSum" : 10,
        "linesOfCodeInUnits" : 63
      },
      "startLine" : 16,
      "endLine" : 33,
      "linesOfCode" : 16,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun doAction()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
        "extension" : "kt",
        "linesOfCode" : 355,
        "unitsCount" : 26,
        "unitsMcCabeIndexSum" : 49,
        "linesOfCodeInUnits" : 298
      },
      "startLine" : 180,
      "endLine" : 195,
      "linesOfCode" : 16,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun retrieveAny()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
        "extension" : "kt",
        "linesOfCode" : 355,
        "unitsCount" : 26,
        "unitsMcCabeIndexSum" : 49,
        "linesOfCodeInUnits" : 298
      },
      "startLine" : 231,
      "endLine" : 246,
      "linesOfCode" : 16,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun findOne()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/search/Finder.kt",
        "extension" : "kt",
        "linesOfCode" : 45,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 6,
        "linesOfCodeInUnits" : 32
      },
      "startLine" : 19,
      "endLine" : 35,
      "linesOfCode" : 16,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun findMany()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/search/Finder.kt",
        "extension" : "kt",
        "linesOfCode" : 45,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 6,
        "linesOfCodeInUnits" : 32
      },
      "startLine" : 37,
      "endLine" : 52,
      "linesOfCode" : 16,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun encrypt()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/encryption/AesEncryptor.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 36
      },
      "startLine" : 25,
      "endLine" : 42,
      "linesOfCode" : 16,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun waitFor()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/utils/RepeatUtils.kt",
        "extension" : "kt",
        "linesOfCode" : 131,
        "unitsCount" : 7,
        "unitsMcCabeIndexSum" : 18,
        "linesOfCodeInUnits" : 102
      },
      "startLine" : 37,
      "endLine" : 52,
      "linesOfCode" : 16,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun findAll()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
        "extension" : "kt",
        "linesOfCode" : 355,
        "unitsCount" : 26,
        "unitsMcCabeIndexSum" : 49,
        "linesOfCodeInUnits" : 298
      },
      "startLine" : 120,
      "endLine" : 135,
      "linesOfCode" : 15,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun makeScreenshot()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
        "extension" : "kt",
        "linesOfCode" : 355,
        "unitsCount" : 26,
        "unitsMcCabeIndexSum" : 49,
        "linesOfCodeInUnits" : 298
      },
      "startLine" : 254,
      "endLine" : 268,
      "linesOfCode" : 15,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun drawImage()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/ExtractorGraphics2d.kt",
        "extension" : "kt",
        "linesOfCode" : 229,
        "unitsCount" : 61,
        "unitsMcCabeIndexSum" : 61,
        "linesOfCodeInUnits" : 214
      },
      "startLine" : 280,
      "endLine" : 294,
      "linesOfCode" : 15,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 11,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun waitForIgnoringError()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/utils/RepeatUtils.kt",
        "extension" : "kt",
        "linesOfCode" : 131,
        "unitsCount" : 7,
        "unitsMcCabeIndexSum" : 18,
        "linesOfCodeInUnits" : 102
      },
      "startLine" : 9,
      "endLine" : 23,
      "linesOfCode" : 15,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "generatePath()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-plugin/src/main/resources/static/xpathEditor.js",
        "extension" : "js",
        "linesOfCode" : 227,
        "unitsCount" : 17,
        "unitsMcCabeIndexSum" : 52,
        "linesOfCodeInUnits" : 221
      },
      "startLine" : 17,
      "endLine" : 36,
      "linesOfCode" : 14,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ {
        "shortName" : "function()",
        "longName" : "",
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/resources/static/xpathEditor.js",
          "extension" : "js",
          "linesOfCode" : 227,
          "unitsCount" : 17,
          "unitsMcCabeIndexSum" : 52,
          "linesOfCodeInUnits" : 221
        },
        "startLine" : 19,
        "endLine" : 24,
        "linesOfCode" : 6,
        "mcCabeIndex" : 2,
        "numberOfParameters" : 2,
        "numberOfLiterals" : 0,
        "numberOfStatements" : 0,
        "numberOfExpressions" : 0,
        "children" : [ ]
      } ]
    }, {
      "shortName" : "override fun resolveClass()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/LambdaLoader.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "unitsCount" : 3,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 21
      },
      "startLine" : 25,
      "endLine" : 38,
      "linesOfCode" : 14,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun doAction()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
        "extension" : "kt",
        "linesOfCode" : 355,
        "unitsCount" : 26,
        "unitsMcCabeIndexSum" : 49,
        "linesOfCodeInUnits" : 298
      },
      "startLine" : 165,
      "endLine" : 178,
      "linesOfCode" : 14,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun retrieveAny()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
        "extension" : "kt",
        "linesOfCode" : 355,
        "unitsCount" : 26,
        "unitsMcCabeIndexSum" : 49,
        "linesOfCodeInUnits" : 298
      },
      "startLine" : 216,
      "endLine" : 229,
      "linesOfCode" : 14,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun doAction()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
        "extension" : "kt",
        "linesOfCode" : 355,
        "unitsCount" : 26,
        "unitsMcCabeIndexSum" : 49,
        "linesOfCodeInUnits" : 298
      },
      "startLine" : 308,
      "endLine" : 321,
      "linesOfCode" : 14,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun drawImage()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/ExtractorGraphics2d.kt",
        "extension" : "kt",
        "linesOfCode" : 229,
        "unitsCount" : 61,
        "unitsMcCabeIndexSum" : 61,
        "linesOfCodeInUnits" : 214
      },
      "startLine" : 265,
      "endLine" : 278,
      "linesOfCode" : 14,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 10,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun showTextArea()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/dialogs/CreateNewTypingDialogWrapper.kt",
        "extension" : "kt",
        "linesOfCode" : 39,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 22
      },
      "startLine" : 31,
      "endLine" : 43,
      "linesOfCode" : 13,
      "mcCabeIndex" : 1,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun isDumbMode()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/steps/CommonSteps.kt",
        "extension" : "kt",
        "linesOfCode" : 104,
        "unitsCount" : 7,
        "unitsMcCabeIndexSum" : 10,
        "linesOfCodeInUnits" : 63
      },
      "startLine" : 82,
      "endLine" : 94,
      "linesOfCode" : 13,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun executeInEDT()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/xpath/XpathDataModelCreator.kt",
        "extension" : "kt",
        "linesOfCode" : 276,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 5,
        "linesOfCodeInUnits" : 20
      },
      "startLine" : 280,
      "endLine" : 292,
      "linesOfCode" : 13,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    } ],
    "conditionalComplexityRiskDistributionPerExtension" : [ {
      "key" : "kt",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 10,
      "highRiskThreshold" : 25,
      "veryHighRiskThreshold" : 50,
      "negligibleRiskValue" : 2591,
      "lowRiskValue" : 106,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 5,
      "negligibleRiskCount" : 375,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-10",
      "mediumRiskLabel" : "11-25",
      "highRiskLabel" : "26-50",
      "veryHighRiskLabel" : "51+",
      "negligibleRiskPercentage" : 96.0697070819429,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 3.9302929180571007,
      "totalValue" : 2697,
      "totalCount" : 380
    }, {
      "key" : "js",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 10,
      "highRiskThreshold" : 25,
      "veryHighRiskThreshold" : 50,
      "negligibleRiskValue" : 203,
      "lowRiskValue" : 46,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 2,
      "negligibleRiskCount" : 18,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-10",
      "mediumRiskLabel" : "11-25",
      "highRiskLabel" : "26-50",
      "veryHighRiskLabel" : "51+",
      "negligibleRiskPercentage" : 81.52610441767068,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 18.473895582329316,
      "totalValue" : 249,
      "totalCount" : 20
    } ],
    "conditionalComplexityRiskDistributionPerComponent" : [ [ {
      "key" : "robot-server-plugin",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 10,
      "highRiskThreshold" : 25,
      "veryHighRiskThreshold" : 50,
      "negligibleRiskValue" : 496,
      "lowRiskValue" : 46,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 2,
      "negligibleRiskCount" : 21,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-10",
      "mediumRiskLabel" : "11-25",
      "highRiskLabel" : "26-50",
      "veryHighRiskLabel" : "51+",
      "negligibleRiskPercentage" : 91.5129151291513,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 8.487084870848708,
      "totalValue" : 542,
      "totalCount" : 23
    }, {
      "key" : "test-recorder",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 10,
      "highRiskThreshold" : 25,
      "veryHighRiskThreshold" : 50,
      "negligibleRiskValue" : 248,
      "lowRiskValue" : 29,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 2,
      "negligibleRiskCount" : 34,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-10",
      "mediumRiskLabel" : "11-25",
      "highRiskLabel" : "26-50",
      "veryHighRiskLabel" : "51+",
      "negligibleRiskPercentage" : 89.53068592057761,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 10.469314079422382,
      "totalValue" : 277,
      "totalCount" : 36
    }, {
      "key" : "remote-fixtures",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 10,
      "highRiskThreshold" : 25,
      "veryHighRiskThreshold" : 50,
      "negligibleRiskValue" : 402,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 60,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-10",
      "mediumRiskLabel" : "11-25",
      "highRiskLabel" : "26-50",
      "veryHighRiskLabel" : "51+",
      "negligibleRiskPercentage" : 100.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 402,
      "totalCount" : 60
    }, {
      "key" : "ide-launcher",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 10,
      "highRiskThreshold" : 25,
      "veryHighRiskThreshold" : 50,
      "negligibleRiskValue" : 113,
      "lowRiskValue" : 0,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 0,
      "negligibleRiskCount" : 9,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-10",
      "mediumRiskLabel" : "11-25",
      "highRiskLabel" : "26-50",
      "veryHighRiskLabel" : "51+",
      "negligibleRiskPercentage" : 100.0,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 0.0,
      "totalValue" : 113,
      "totalCount" : 9
    }, {
      "key" : "robot-server-core",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 10,
      "highRiskThreshold" : 25,
      "veryHighRiskThreshold" : 50,
      "negligibleRiskValue" : 550,
      "lowRiskValue" : 40,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 2,
      "negligibleRiskCount" : 89,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-10",
      "mediumRiskLabel" : "11-25",
      "highRiskLabel" : "26-50",
      "veryHighRiskLabel" : "51+",
      "negligibleRiskPercentage" : 93.22033898305085,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 6.779661016949152,
      "totalValue" : 590,
      "totalCount" : 91
    }, {
      "key" : "remote-robot",
      "lowRiskThreshold" : 5,
      "mediumRiskThreshold" : 10,
      "highRiskThreshold" : 25,
      "veryHighRiskThreshold" : 50,
      "negligibleRiskValue" : 985,
      "lowRiskValue" : 37,
      "mediumRiskValue" : 0,
      "highRiskValue" : 0,
      "veryHighRiskValue" : 0,
      "lowRiskCount" : 1,
      "negligibleRiskCount" : 180,
      "mediumRiskCount" : 0,
      "highRiskCount" : 0,
      "veryHighRiskCount" : 0,
      "negligibleRiskLabel" : "1-5",
      "lowRiskLabel" : "6-10",
      "mediumRiskLabel" : "11-25",
      "highRiskLabel" : "26-50",
      "veryHighRiskLabel" : "51+",
      "negligibleRiskPercentage" : 96.37964774951077,
      "veryHighRiskPercentage" : 0.0,
      "highRiskPercentage" : 0.0,
      "mediumRiskPercentage" : 0.0,
      "lowRiskPercentage" : 3.620352250489237,
      "totalValue" : 1022,
      "totalCount" : 181
    } ] ],
    "mostComplexUnits" : [ {
      "shortName" : "_formatAttributes()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-plugin/src/main/resources/static/xpathEditor.js",
        "extension" : "js",
        "linesOfCode" : 227,
        "unitsCount" : 17,
        "unitsMcCabeIndexSum" : 52,
        "linesOfCodeInUnits" : 221
      },
      "startLine" : 234,
      "endLine" : 257,
      "linesOfCode" : 23,
      "mcCabeIndex" : 9,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun processKeyEvent()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/keyboard/TextHotKeyStepModel.kt",
        "extension" : "kt",
        "linesOfCode" : 39,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 10,
        "linesOfCodeInUnits" : 23
      },
      "startLine" : 20,
      "endLine" : 39,
      "linesOfCode" : 20,
      "mcCabeIndex" : 9,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "_isGoodAndUnique()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-plugin/src/main/resources/static/xpathEditor.js",
        "extension" : "js",
        "linesOfCode" : 227,
        "unitsCount" : 17,
        "unitsMcCabeIndexSum" : 52,
        "linesOfCodeInUnits" : 221
      },
      "startLine" : 210,
      "endLine" : 232,
      "linesOfCode" : 23,
      "mcCabeIndex" : 8,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun init()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/TextToKeyCache.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 12,
        "linesOfCodeInUnits" : 49
      },
      "startLine" : 11,
      "endLine" : 50,
      "linesOfCode" : 37,
      "mcCabeIndex" : 7,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun isThisFromRecordTestFrame()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/RecordUITestFrame.kt",
        "extension" : "kt",
        "linesOfCode" : 207,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 7,
        "linesOfCodeInUnits" : 13
      },
      "startLine" : 44,
      "endLine" : 53,
      "linesOfCode" : 9,
      "mcCabeIndex" : 6,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun retrieveAny()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
        "extension" : "kt",
        "linesOfCode" : 355,
        "unitsCount" : 26,
        "unitsMcCabeIndexSum" : 49,
        "linesOfCodeInUnits" : 298
      },
      "startLine" : 323,
      "endLine" : 341,
      "linesOfCode" : 19,
      "mcCabeIndex" : 6,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun retrieveAny()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
        "extension" : "kt",
        "linesOfCode" : 355,
        "unitsCount" : 26,
        "unitsMcCabeIndexSum" : 49,
        "linesOfCodeInUnits" : 298
      },
      "startLine" : 343,
      "endLine" : 364,
      "linesOfCode" : 21,
      "mcCabeIndex" : 6,
      "numberOfParameters" : 3,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "generate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-plugin/src/main/resources/static/xpathEditor.js",
        "extension" : "js",
        "linesOfCode" : 227,
        "unitsCount" : 17,
        "unitsMcCabeIndexSum" : 52,
        "linesOfCodeInUnits" : 221
      },
      "startLine" : 134,
      "endLine" : 156,
      "linesOfCode" : 23,
      "mcCabeIndex" : 5,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "_generateMiddleSkippedPaths()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-plugin/src/main/resources/static/xpathEditor.js",
        "extension" : "js",
        "linesOfCode" : 227,
        "unitsCount" : 17,
        "unitsMcCabeIndexSum" : 52,
        "linesOfCodeInUnits" : 221
      },
      "startLine" : 188,
      "endLine" : 208,
      "linesOfCode" : 20,
      "mcCabeIndex" : 5,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun findKey()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/TextToKeyCache.kt",
        "extension" : "kt",
        "linesOfCode" : 61,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 12,
        "linesOfCodeInUnits" : 49
      },
      "startLine" : 52,
      "endLine" : 63,
      "linesOfCode" : 12,
      "mcCabeIndex" : 5,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "checkXpath()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-plugin/src/main/resources/static/xpathEditor.js",
        "extension" : "js",
        "linesOfCode" : 227,
        "unitsCount" : 17,
        "unitsMcCabeIndexSum" : 52,
        "linesOfCodeInUnits" : 221
      },
      "startLine" : 38,
      "endLine" : 60,
      "linesOfCode" : 22,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "constructor()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-plugin/src/main/resources/static/xpathEditor.js",
        "extension" : "js",
        "linesOfCode" : 227,
        "unitsCount" : 17,
        "unitsMcCabeIndexSum" : 52,
        "linesOfCodeInUnits" : 221
      },
      "startLine" : 76,
      "endLine" : 126,
      "linesOfCode" : 39,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun getIcons()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/TextEditorFixture.kt",
        "extension" : "kt",
        "linesOfCode" : 228,
        "unitsCount" : 9,
        "unitsMcCabeIndexSum" : 14,
        "linesOfCodeInUnits" : 122
      },
      "startLine" : 66,
      "endLine" : 100,
      "linesOfCode" : 35,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun hostOS()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "ide-launcher/src/main/kotlin/com/intellij/remoterobot/launcher/Os.kt",
        "extension" : "kt",
        "linesOfCode" : 15,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 9
      },
      "startLine" : 7,
      "endLine" : 15,
      "linesOfCode" : 9,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun findParentOf()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
        "extension" : "kt",
        "linesOfCode" : 355,
        "unitsCount" : 26,
        "unitsMcCabeIndexSum" : 49,
        "linesOfCodeInUnits" : 298
      },
      "startLine" : 81,
      "endLine" : 105,
      "linesOfCode" : 22,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun waitFor()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/utils/RepeatUtils.kt",
        "extension" : "kt",
        "linesOfCode" : 131,
        "unitsCount" : 7,
        "unitsMcCabeIndexSum" : 18,
        "linesOfCodeInUnits" : 102
      },
      "startLine" : 37,
      "endLine" : 52,
      "linesOfCode" : 16,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun  waitFor()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/utils/RepeatUtils.kt",
        "extension" : "kt",
        "linesOfCode" : 131,
        "unitsCount" : 7,
        "unitsMcCabeIndexSum" : 18,
        "linesOfCodeInUnits" : 102
      },
      "startLine" : 57,
      "endLine" : 86,
      "linesOfCode" : 30,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun repeatInTime()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/utils/RepeatUtils.kt",
        "extension" : "kt",
        "linesOfCode" : 131,
        "unitsCount" : 7,
        "unitsMcCabeIndexSum" : 18,
        "linesOfCodeInUnits" : 102
      },
      "startLine" : 88,
      "endLine" : 110,
      "linesOfCode" : 23,
      "mcCabeIndex" : 4,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "_findUniqueParent()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-plugin/src/main/resources/static/xpathEditor.js",
        "extension" : "js",
        "linesOfCode" : 227,
        "unitsCount" : 17,
        "unitsMcCabeIndexSum" : 52,
        "linesOfCodeInUnits" : 221
      },
      "startLine" : 158,
      "endLine" : 174,
      "linesOfCode" : 11,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ {
        "shortName" : "function()",
        "longName" : "",
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/resources/static/xpathEditor.js",
          "extension" : "js",
          "linesOfCode" : 227,
          "unitsCount" : 17,
          "unitsMcCabeIndexSum" : 52,
          "linesOfCodeInUnits" : 221
        },
        "startLine" : 164,
        "endLine" : 169,
        "linesOfCode" : 6,
        "mcCabeIndex" : 2,
        "numberOfParameters" : 2,
        "numberOfLiterals" : 0,
        "numberOfStatements" : 0,
        "numberOfExpressions" : 0,
        "children" : [ ]
      } ]
    }, {
      "shortName" : "fun isTheSameGroup()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/steps/GroupableStep.kt",
        "extension" : "kt",
        "linesOfCode" : 9,
        "unitsCount" : 3,
        "unitsMcCabeIndexSum" : 5,
        "linesOfCodeInUnits" : 3
      },
      "startLine" : 9,
      "endLine" : 11,
      "linesOfCode" : 3,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "open fun select()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JMenuBarFixture.kt",
        "extension" : "kt",
        "linesOfCode" : 77,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 7
      },
      "startLine" : 19,
      "endLine" : 25,
      "linesOfCode" : 7,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun isDumbMode()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/steps/CommonSteps.kt",
        "extension" : "kt",
        "linesOfCode" : 104,
        "unitsCount" : 7,
        "unitsMcCabeIndexSum" : 10,
        "linesOfCodeInUnits" : 63
      },
      "startLine" : 82,
      "endLine" : 94,
      "linesOfCode" : 13,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun waitForIdle()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/robot/SmoothRobot.kt",
        "extension" : "kt",
        "linesOfCode" : 334,
        "unitsCount" : 52,
        "unitsMcCabeIndexSum" : 58,
        "linesOfCodeInUnits" : 208
      },
      "startLine" : 223,
      "endLine" : 230,
      "linesOfCode" : 8,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun moveMouse()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/robot/SmoothRobot.kt",
        "extension" : "kt",
        "linesOfCode" : 334,
        "unitsCount" : 52,
        "unitsMcCabeIndexSum" : 58,
        "linesOfCodeInUnits" : 208
      },
      "startLine" : 238,
      "endLine" : 257,
      "linesOfCode" : 19,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun executeInEDT()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/xpath/XpathDataModelCreator.kt",
        "extension" : "kt",
        "linesOfCode" : 276,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 5,
        "linesOfCodeInUnits" : 20
      },
      "startLine" : 280,
      "endLine" : 292,
      "linesOfCode" : 13,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun findComponent()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/xpath/XpathSearcher.kt",
        "extension" : "kt",
        "linesOfCode" : 24,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 14
      },
      "startLine" : 15,
      "endLine" : 23,
      "linesOfCode" : 9,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun valueAt()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/textCellRenderers/JTreeTextCellReader.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 10
      },
      "startLine" : 10,
      "endLine" : 19,
      "linesOfCode" : 10,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun executeInEDT()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/TextParser.kt",
        "extension" : "kt",
        "linesOfCode" : 46,
        "unitsCount" : 3,
        "unitsMcCabeIndexSum" : 5,
        "linesOfCodeInUnits" : 23
      },
      "startLine" : 39,
      "endLine" : 47,
      "linesOfCode" : 8,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun findOne()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/search/Finder.kt",
        "extension" : "kt",
        "linesOfCode" : 45,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 6,
        "linesOfCodeInUnits" : 32
      },
      "startLine" : 19,
      "endLine" : 35,
      "linesOfCode" : 16,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun findMany()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/search/Finder.kt",
        "extension" : "kt",
        "linesOfCode" : 45,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 6,
        "linesOfCodeInUnits" : 32
      },
      "startLine" : 37,
      "endLine" : 52,
      "linesOfCode" : 16,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun decrypt()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/encryption/AesEncryptor.kt",
        "extension" : "kt",
        "linesOfCode" : 60,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 36
      },
      "startLine" : 44,
      "endLine" : 64,
      "linesOfCode" : 20,
      "mcCabeIndex" : 3,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun appFrameCreated()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerStarter.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 10
      },
      "startLine" : 13,
      "endLine" : 22,
      "linesOfCode" : 10,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun startServer()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
        "extension" : "kt",
        "linesOfCode" : 368,
        "unitsCount" : 1,
        "unitsMcCabeIndexSum" : 2,
        "linesOfCodeInUnits" : 278
      },
      "startLine" : 37,
      "endLine" : 327,
      "linesOfCode" : 278,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "function launchUpdate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-plugin/src/main/resources/static/updateButton.js",
        "extension" : "js",
        "linesOfCode" : 25,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 3,
        "linesOfCodeInUnits" : 23
      },
      "startLine" : 14,
      "endLine" : 30,
      "linesOfCode" : 16,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "generatePath()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-plugin/src/main/resources/static/xpathEditor.js",
        "extension" : "js",
        "linesOfCode" : 227,
        "unitsCount" : 17,
        "unitsMcCabeIndexSum" : 52,
        "linesOfCodeInUnits" : 221
      },
      "startLine" : 17,
      "endLine" : 36,
      "linesOfCode" : 14,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ {
        "shortName" : "function()",
        "longName" : "",
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/resources/static/xpathEditor.js",
          "extension" : "js",
          "linesOfCode" : 227,
          "unitsCount" : 17,
          "unitsMcCabeIndexSum" : 52,
          "linesOfCodeInUnits" : 221
        },
        "startLine" : 19,
        "endLine" : 24,
        "linesOfCode" : 6,
        "mcCabeIndex" : 2,
        "numberOfParameters" : 2,
        "numberOfLiterals" : 0,
        "numberOfStatements" : 0,
        "numberOfExpressions" : 0,
        "children" : [ ]
      } ]
    }, {
      "shortName" : "function()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-plugin/src/main/resources/static/xpathEditor.js",
        "extension" : "js",
        "linesOfCode" : 227,
        "unitsCount" : 17,
        "unitsMcCabeIndexSum" : 52,
        "linesOfCodeInUnits" : 221
      },
      "startLine" : 19,
      "endLine" : 24,
      "linesOfCode" : 6,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "function()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-plugin/src/main/resources/static/xpathEditor.js",
        "extension" : "js",
        "linesOfCode" : 227,
        "unitsCount" : 17,
        "unitsMcCabeIndexSum" : 52,
        "linesOfCodeInUnits" : 221
      },
      "startLine" : 164,
      "endLine" : 169,
      "linesOfCode" : 6,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "function()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "robot-server-plugin/src/main/resources/static/xpathEditor.js",
        "extension" : "js",
        "linesOfCode" : 227,
        "unitsCount" : 17,
        "unitsMcCabeIndexSum" : 52,
        "linesOfCodeInUnits" : 221
      },
      "startLine" : 180,
      "endLine" : 185,
      "linesOfCode" : 6,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun activate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/RobotEventService.kt",
        "extension" : "kt",
        "linesOfCode" : 169,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 32
      },
      "startLine" : 43,
      "endLine" : 67,
      "linesOfCode" : 23,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun deactivate()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/RobotEventService.kt",
        "extension" : "kt",
        "linesOfCode" : 169,
        "unitsCount" : 2,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 32
      },
      "startLine" : 69,
      "endLine" : 77,
      "linesOfCode" : 9,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun openUI()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/RecorderService.kt",
        "extension" : "kt",
        "linesOfCode" : 31,
        "unitsCount" : 3,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 17
      },
      "startLine" : 27,
      "endLine" : 38,
      "linesOfCode" : 12,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "override fun documentChanged()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/dialogs/CreateNewCommonStepDialogWrapper.kt",
        "extension" : "kt",
        "linesOfCode" : 138,
        "unitsCount" : 3,
        "unitsMcCabeIndexSum" : 4,
        "linesOfCodeInUnits" : 47
      },
      "startLine" : 107,
      "endLine" : 112,
      "linesOfCode" : 6,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun replaceText()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/TextEditorFixture.kt",
        "extension" : "kt",
        "linesOfCode" : 228,
        "unitsCount" : 9,
        "unitsMcCabeIndexSum" : 14,
        "linesOfCodeInUnits" : 122
      },
      "startLine" : 196,
      "endLine" : 219,
      "linesOfCode" : 21,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun selectText()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/TextEditorFixture.kt",
        "extension" : "kt",
        "linesOfCode" : 228,
        "unitsCount" : 9,
        "unitsMcCabeIndexSum" : 14,
        "linesOfCodeInUnits" : 122
      },
      "startLine" : 221,
      "endLine" : 243,
      "linesOfCode" : 20,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun expandAllExcept()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JTreeFixture.kt",
        "extension" : "kt",
        "linesOfCode" : 167,
        "unitsCount" : 7,
        "unitsMcCabeIndexSum" : 8,
        "linesOfCodeInUnits" : 51
      },
      "startLine" : 157,
      "endLine" : 173,
      "linesOfCode" : 16,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun select()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JCheckboxFixture.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "unitsCount" : 3,
        "unitsMcCabeIndexSum" : 5,
        "linesOfCodeInUnits" : 9
      },
      "startLine" : 29,
      "endLine" : 31,
      "linesOfCode" : 3,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun unselect()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JCheckboxFixture.kt",
        "extension" : "kt",
        "linesOfCode" : 34,
        "unitsCount" : 3,
        "unitsMcCabeIndexSum" : 5,
        "linesOfCodeInUnits" : 9
      },
      "startLine" : 33,
      "endLine" : 35,
      "linesOfCode" : 3,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 0,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun scrollTo()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JCefBrowserFixture.kt",
        "extension" : "kt",
        "linesOfCode" : 241,
        "unitsCount" : 7,
        "unitsMcCabeIndexSum" : 8,
        "linesOfCodeInUnits" : 24
      },
      "startLine" : 169,
      "endLine" : 174,
      "linesOfCode" : 6,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun setValue()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JRadioButtonFixture.kt",
        "extension" : "kt",
        "linesOfCode" : 30,
        "unitsCount" : 4,
        "unitsMcCabeIndexSum" : 5,
        "linesOfCodeInUnits" : 12
      },
      "startLine" : 34,
      "endLine" : 36,
      "linesOfCode" : 3,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 1,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    }, {
      "shortName" : "fun openProject()",
      "longName" : "",
      "sourceFile" : {
        "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/steps/CommonSteps.kt",
        "extension" : "kt",
        "linesOfCode" : 104,
        "unitsCount" : 7,
        "unitsMcCabeIndexSum" : 10,
        "linesOfCodeInUnits" : 63
      },
      "startLine" : 51,
      "endLine" : 75,
      "linesOfCode" : 22,
      "mcCabeIndex" : 2,
      "numberOfParameters" : 2,
      "numberOfLiterals" : 0,
      "numberOfStatements" : 0,
      "numberOfExpressions" : 0,
      "children" : [ ]
    } ]
  },
  "duplicationAnalysisResults" : {
    "overallDuplication" : {
      "key" : "system",
      "numberOfDuplicates" : 40,
      "cleanedLinesOfCode" : 6993,
      "duplicatedLinesOfCode" : 405,
      "numberOfFilesWithDuplicates" : 19,
      "duplicationPercentage" : 5.7915057915057915
    },
    "duplicationPerComponent" : [ [ {
      "key" : "remote-robot",
      "numberOfDuplicates" : 0,
      "cleanedLinesOfCode" : 2759,
      "duplicatedLinesOfCode" : 148,
      "numberOfFilesWithDuplicates" : 0,
      "duplicationPercentage" : 5.364262413918087
    }, {
      "key" : "robot-server-plugin",
      "numberOfDuplicates" : 0,
      "cleanedLinesOfCode" : 608,
      "duplicatedLinesOfCode" : 84,
      "numberOfFilesWithDuplicates" : 0,
      "duplicationPercentage" : 13.81578947368421
    }, {
      "key" : "test-recorder",
      "numberOfDuplicates" : 0,
      "cleanedLinesOfCode" : 974,
      "duplicatedLinesOfCode" : 35,
      "numberOfFilesWithDuplicates" : 0,
      "duplicationPercentage" : 3.593429158110883
    }, {
      "key" : "robot-server-core",
      "numberOfDuplicates" : 0,
      "cleanedLinesOfCode" : 898,
      "duplicatedLinesOfCode" : 67,
      "numberOfFilesWithDuplicates" : 0,
      "duplicationPercentage" : 7.461024498886414
    }, {
      "key" : "remote-fixtures",
      "numberOfDuplicates" : 0,
      "cleanedLinesOfCode" : 1342,
      "duplicatedLinesOfCode" : 58,
      "numberOfFilesWithDuplicates" : 0,
      "duplicationPercentage" : 4.321907600596125
    }, {
      "key" : "ide-launcher",
      "numberOfDuplicates" : 0,
      "cleanedLinesOfCode" : 359,
      "duplicatedLinesOfCode" : 13,
      "numberOfFilesWithDuplicates" : 0,
      "duplicationPercentage" : 3.6211699164345403
    }, {
      "key" : "ROOT",
      "numberOfDuplicates" : 0,
      "cleanedLinesOfCode" : 53,
      "duplicatedLinesOfCode" : 0,
      "numberOfFilesWithDuplicates" : 0,
      "duplicationPercentage" : 0.0
    } ] ],
    "duplicationPerConcern" : [ ],
    "duplicationPerExtension" : [ {
      "key" : "kt",
      "numberOfDuplicates" : 0,
      "cleanedLinesOfCode" : 5472,
      "duplicatedLinesOfCode" : 322,
      "numberOfFilesWithDuplicates" : 0,
      "duplicationPercentage" : 5.8845029239766085
    }, {
      "key" : "kts",
      "numberOfDuplicates" : 0,
      "cleanedLinesOfCode" : 258,
      "duplicatedLinesOfCode" : 83,
      "numberOfFilesWithDuplicates" : 0,
      "duplicationPercentage" : 32.17054263565891
    } ],
    "longestDuplicates" : [ {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "robot-server-core/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 47,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 35,
        "startLine" : 27,
        "endLine" : 49,
        "cleanedStartLine" : 16,
        "cleanedEndLine" : 28,
        "percentage" : 37.142857142857146,
        "blockSize" : 13
      }, {
        "sourceFile" : {
          "relativePath" : "test-recorder/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 42,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 30,
        "startLine" : 20,
        "endLine" : 42,
        "cleanedStartLine" : 11,
        "cleanedEndLine" : 23,
        "percentage" : 43.333333333333336,
        "blockSize" : 13
      } ],
      "blockSize" : 13
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
          "extension" : "kt",
          "linesOfCode" : 355,
          "unitsCount" : 26,
          "unitsMcCabeIndexSum" : 49,
          "linesOfCodeInUnits" : 298
        },
        "sourceFileCleanedLinesOfCode" : 254,
        "startLine" : 325,
        "endLine" : 338,
        "cleanedStartLine" : 205,
        "cleanedEndLine" : 215,
        "percentage" : 4.330708661417323,
        "blockSize" : 11
      }, {
        "sourceFile" : {
          "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
          "extension" : "kt",
          "linesOfCode" : 355,
          "unitsCount" : 26,
          "unitsMcCabeIndexSum" : 49,
          "linesOfCodeInUnits" : 298
        },
        "sourceFileCleanedLinesOfCode" : 254,
        "startLine" : 348,
        "endLine" : 361,
        "cleanedStartLine" : 220,
        "cleanedEndLine" : 230,
        "percentage" : 4.330708661417323,
        "blockSize" : 11
      } ],
      "blockSize" : 11
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/ExtractorGraphics2d.kt",
          "extension" : "kt",
          "linesOfCode" : 229,
          "unitsCount" : 61,
          "unitsMcCabeIndexSum" : 61,
          "linesOfCodeInUnits" : 214
        },
        "sourceFileCleanedLinesOfCode" : 157,
        "startLine" : 265,
        "endLine" : 274,
        "cleanedStartLine" : 131,
        "cleanedEndLine" : 140,
        "percentage" : 6.369426751592357,
        "blockSize" : 10
      }, {
        "sourceFile" : {
          "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/dataExtractor/server/ExtractorGraphics2d.kt",
          "extension" : "kt",
          "linesOfCode" : 229,
          "unitsCount" : 61,
          "unitsMcCabeIndexSum" : 61,
          "linesOfCodeInUnits" : 214
        },
        "sourceFileCleanedLinesOfCode" : 157,
        "startLine" : 280,
        "endLine" : 289,
        "cleanedStartLine" : 144,
        "cleanedEndLine" : 153,
        "percentage" : 6.369426751592357,
        "blockSize" : 10
      } ],
      "blockSize" : 10
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 354,
        "endLine" : 363,
        "cleanedStartLine" : 252,
        "cleanedEndLine" : 260,
        "percentage" : 3.225806451612903,
        "blockSize" : 9
      }, {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 374,
        "endLine" : 383,
        "cleanedStartLine" : 268,
        "cleanedEndLine" : 276,
        "percentage" : 3.225806451612903,
        "blockSize" : 9
      } ],
      "blockSize" : 9
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/RemoteRobot.kt",
          "extension" : "kt",
          "linesOfCode" : 239,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 1,
          "linesOfCodeInUnits" : 4
        },
        "sourceFileCleanedLinesOfCode" : 195,
        "startLine" : 155,
        "endLine" : 163,
        "cleanedStartLine" : 91,
        "cleanedEndLine" : 99,
        "percentage" : 4.615384615384615,
        "blockSize" : 9
      }, {
        "sourceFile" : {
          "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/RemoteRobot.kt",
          "extension" : "kt",
          "linesOfCode" : 239,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 1,
          "linesOfCodeInUnits" : 4
        },
        "sourceFileCleanedLinesOfCode" : 195,
        "startLine" : 170,
        "endLine" : 178,
        "cleanedStartLine" : 104,
        "cleanedEndLine" : 112,
        "percentage" : 4.615384615384615,
        "blockSize" : 9
      } ],
      "blockSize" : 9
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 84,
        "endLine" : 92,
        "cleanedStartLine" : 41,
        "cleanedEndLine" : 49,
        "percentage" : 3.225806451612903,
        "blockSize" : 9
      }, {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 150,
        "endLine" : 158,
        "cleanedStartLine" : 95,
        "cleanedEndLine" : 103,
        "percentage" : 3.225806451612903,
        "blockSize" : 9
      } ],
      "blockSize" : 9
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "robot-server-core/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 47,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 35,
        "startLine" : 1,
        "endLine" : 16,
        "cleanedStartLine" : 1,
        "cleanedEndLine" : 8,
        "percentage" : 22.857142857142858,
        "blockSize" : 8
      }, {
        "sourceFile" : {
          "relativePath" : "test-recorder/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 42,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 30,
        "startLine" : 1,
        "endLine" : 16,
        "cleanedStartLine" : 1,
        "cleanedEndLine" : 8,
        "percentage" : 26.666666666666668,
        "blockSize" : 8
      } ],
      "blockSize" : 8
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 299,
        "endLine" : 305,
        "cleanedStartLine" : 210,
        "cleanedEndLine" : 216,
        "percentage" : 2.5089605734767026,
        "blockSize" : 7
      }, {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 314,
        "endLine" : 320,
        "cleanedStartLine" : 223,
        "cleanedEndLine" : 229,
        "percentage" : 2.5089605734767026,
        "blockSize" : 7
      } ],
      "blockSize" : 7
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 229,
        "endLine" : 235,
        "cleanedStartLine" : 156,
        "cleanedEndLine" : 162,
        "percentage" : 2.5089605734767026,
        "blockSize" : 7
      }, {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 314,
        "endLine" : 320,
        "cleanedStartLine" : 223,
        "cleanedEndLine" : 229,
        "percentage" : 2.5089605734767026,
        "blockSize" : 7
      } ],
      "blockSize" : 7
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "ide-launcher/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 31,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 25,
        "startLine" : 12,
        "endLine" : 20,
        "cleanedStartLine" : 10,
        "cleanedEndLine" : 16,
        "percentage" : 28.0,
        "blockSize" : 7
      }, {
        "sourceFile" : {
          "relativePath" : "remote-robot/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 37,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 28,
        "startLine" : 27,
        "endLine" : 35,
        "cleanedStartLine" : 15,
        "cleanedEndLine" : 21,
        "percentage" : 25.0,
        "blockSize" : 7
      } ],
      "blockSize" : 7
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/TextEditorFixture.kt",
          "extension" : "kt",
          "linesOfCode" : 228,
          "unitsCount" : 9,
          "unitsMcCabeIndexSum" : 14,
          "linesOfCodeInUnits" : 122
        },
        "sourceFileCleanedLinesOfCode" : 182,
        "startLine" : 121,
        "endLine" : 130,
        "cleanedStartLine" : 82,
        "cleanedEndLine" : 88,
        "percentage" : 3.8461538461538463,
        "blockSize" : 7
      }, {
        "sourceFile" : {
          "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/TextEditorFixture.kt",
          "extension" : "kt",
          "linesOfCode" : 228,
          "unitsCount" : 9,
          "unitsMcCabeIndexSum" : 14,
          "linesOfCodeInUnits" : 122
        },
        "sourceFileCleanedLinesOfCode" : 182,
        "startLine" : 202,
        "endLine" : 211,
        "cleanedStartLine" : 142,
        "cleanedEndLine" : 148,
        "percentage" : 3.8461538461538463,
        "blockSize" : 7
      } ],
      "blockSize" : 7
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 249,
        "endLine" : 255,
        "cleanedStartLine" : 172,
        "cleanedEndLine" : 178,
        "percentage" : 2.5089605734767026,
        "blockSize" : 7
      }, {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 266,
        "endLine" : 272,
        "cleanedStartLine" : 187,
        "cleanedEndLine" : 193,
        "percentage" : 2.5089605734767026,
        "blockSize" : 7
      } ],
      "blockSize" : 7
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "remote-robot/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 37,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 28,
        "startLine" : 21,
        "endLine" : 31,
        "cleanedStartLine" : 13,
        "cleanedEndLine" : 19,
        "percentage" : 25.0,
        "blockSize" : 7
      }, {
        "sourceFile" : {
          "relativePath" : "test-recorder/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 42,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 30,
        "startLine" : 20,
        "endLine" : 30,
        "cleanedStartLine" : 11,
        "cleanedEndLine" : 17,
        "percentage" : 23.333333333333332,
        "blockSize" : 7
      } ],
      "blockSize" : 7
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 86,
        "endLine" : 92,
        "cleanedStartLine" : 43,
        "cleanedEndLine" : 49,
        "percentage" : 2.5089605734767026,
        "blockSize" : 7
      }, {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 112,
        "endLine" : 118,
        "cleanedStartLine" : 65,
        "cleanedEndLine" : 71,
        "percentage" : 2.5089605734767026,
        "blockSize" : 7
      } ],
      "blockSize" : 7
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "remote-robot/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 37,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 28,
        "startLine" : 21,
        "endLine" : 31,
        "cleanedStartLine" : 13,
        "cleanedEndLine" : 19,
        "percentage" : 25.0,
        "blockSize" : 7
      }, {
        "sourceFile" : {
          "relativePath" : "robot-server-core/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 47,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 35,
        "startLine" : 27,
        "endLine" : 37,
        "cleanedStartLine" : 16,
        "cleanedEndLine" : 22,
        "percentage" : 20.0,
        "blockSize" : 7
      } ],
      "blockSize" : 7
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/dialogs/CreateNewCommonStepDialogWrapper.kt",
          "extension" : "kt",
          "linesOfCode" : 138,
          "unitsCount" : 3,
          "unitsMcCabeIndexSum" : 4,
          "linesOfCodeInUnits" : 47
        },
        "sourceFileCleanedLinesOfCode" : 92,
        "startLine" : 43,
        "endLine" : 51,
        "cleanedStartLine" : 12,
        "cleanedEndLine" : 18,
        "percentage" : 7.608695652173913,
        "blockSize" : 7
      }, {
        "sourceFile" : {
          "relativePath" : "test-recorder/src/main/kotlin/com/intellij/remoterobot/recorder/ui/dialogs/CreateNewMouseEventStepDialogWrapper.kt",
          "extension" : "kt",
          "linesOfCode" : 147,
          "unitsCount" : 2,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 48
        },
        "sourceFileCleanedLinesOfCode" : 108,
        "startLine" : 43,
        "endLine" : 51,
        "cleanedStartLine" : 16,
        "cleanedEndLine" : 22,
        "percentage" : 6.481481481481482,
        "blockSize" : 7
      } ],
      "blockSize" : 7
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "remote-fixtures/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 40,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 29,
        "startLine" : 28,
        "endLine" : 36,
        "cleanedStartLine" : 16,
        "cleanedEndLine" : 22,
        "percentage" : 24.137931034482758,
        "blockSize" : 7
      }, {
        "sourceFile" : {
          "relativePath" : "remote-robot/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 37,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 28,
        "startLine" : 27,
        "endLine" : 35,
        "cleanedStartLine" : 15,
        "cleanedEndLine" : 21,
        "percentage" : 25.0,
        "blockSize" : 7
      } ],
      "blockSize" : 7
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/TextEditorFixture.kt",
          "extension" : "kt",
          "linesOfCode" : 228,
          "unitsCount" : 9,
          "unitsMcCabeIndexSum" : 14,
          "linesOfCodeInUnits" : 122
        },
        "sourceFileCleanedLinesOfCode" : 182,
        "startLine" : 180,
        "endLine" : 189,
        "cleanedStartLine" : 127,
        "cleanedEndLine" : 133,
        "percentage" : 3.8461538461538463,
        "blockSize" : 7
      }, {
        "sourceFile" : {
          "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/TextEditorFixture.kt",
          "extension" : "kt",
          "linesOfCode" : 228,
          "unitsCount" : 9,
          "unitsMcCabeIndexSum" : 14,
          "linesOfCodeInUnits" : 122
        },
        "sourceFileCleanedLinesOfCode" : 182,
        "startLine" : 202,
        "endLine" : 211,
        "cleanedStartLine" : 142,
        "cleanedEndLine" : 148,
        "percentage" : 3.8461538461538463,
        "blockSize" : 7
      } ],
      "blockSize" : 7
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "ide-launcher/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 31,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 25,
        "startLine" : 12,
        "endLine" : 20,
        "cleanedStartLine" : 10,
        "cleanedEndLine" : 16,
        "percentage" : 28.0,
        "blockSize" : 7
      }, {
        "sourceFile" : {
          "relativePath" : "remote-fixtures/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 40,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 29,
        "startLine" : 28,
        "endLine" : 36,
        "cleanedStartLine" : 16,
        "cleanedEndLine" : 22,
        "percentage" : 24.137931034482758,
        "blockSize" : 7
      } ],
      "blockSize" : 7
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/Fixture.kt",
          "extension" : "kt",
          "linesOfCode" : 130,
          "unitsCount" : 10,
          "unitsMcCabeIndexSum" : 10,
          "linesOfCodeInUnits" : 55
        },
        "sourceFileCleanedLinesOfCode" : 97,
        "startLine" : 86,
        "endLine" : 92,
        "cleanedStartLine" : 38,
        "cleanedEndLine" : 44,
        "percentage" : 7.216494845360825,
        "blockSize" : 7
      }, {
        "sourceFile" : {
          "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/Fixture.kt",
          "extension" : "kt",
          "linesOfCode" : 130,
          "unitsCount" : 10,
          "unitsMcCabeIndexSum" : 10,
          "linesOfCodeInUnits" : 55
        },
        "sourceFileCleanedLinesOfCode" : 97,
        "startLine" : 111,
        "endLine" : 117,
        "cleanedStartLine" : 59,
        "cleanedEndLine" : 65,
        "percentage" : 7.216494845360825,
        "blockSize" : 7
      } ],
      "blockSize" : 7
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/TextEditorFixture.kt",
          "extension" : "kt",
          "linesOfCode" : 228,
          "unitsCount" : 9,
          "unitsMcCabeIndexSum" : 14,
          "linesOfCodeInUnits" : 122
        },
        "sourceFileCleanedLinesOfCode" : 182,
        "startLine" : 121,
        "endLine" : 130,
        "cleanedStartLine" : 82,
        "cleanedEndLine" : 88,
        "percentage" : 3.8461538461538463,
        "blockSize" : 7
      }, {
        "sourceFile" : {
          "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/TextEditorFixture.kt",
          "extension" : "kt",
          "linesOfCode" : 228,
          "unitsCount" : 9,
          "unitsMcCabeIndexSum" : 14,
          "linesOfCodeInUnits" : 122
        },
        "sourceFileCleanedLinesOfCode" : 182,
        "startLine" : 180,
        "endLine" : 189,
        "cleanedStartLine" : 127,
        "cleanedEndLine" : 133,
        "percentage" : 3.8461538461538463,
        "blockSize" : 7
      } ],
      "blockSize" : 7
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 229,
        "endLine" : 235,
        "cleanedStartLine" : 156,
        "cleanedEndLine" : 162,
        "percentage" : 2.5089605734767026,
        "blockSize" : 7
      }, {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 299,
        "endLine" : 305,
        "cleanedStartLine" : 210,
        "cleanedEndLine" : 216,
        "percentage" : 2.5089605734767026,
        "blockSize" : 7
      } ],
      "blockSize" : 7
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 112,
        "endLine" : 118,
        "cleanedStartLine" : 65,
        "cleanedEndLine" : 71,
        "percentage" : 2.5089605734767026,
        "blockSize" : 7
      }, {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 152,
        "endLine" : 158,
        "cleanedStartLine" : 97,
        "cleanedEndLine" : 103,
        "percentage" : 2.5089605734767026,
        "blockSize" : 7
      } ],
      "blockSize" : 7
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 216,
        "endLine" : 221,
        "cleanedStartLine" : 145,
        "cleanedEndLine" : 150,
        "percentage" : 2.150537634408602,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 300,
        "endLine" : 305,
        "cleanedStartLine" : 211,
        "cleanedEndLine" : 216,
        "percentage" : 2.150537634408602,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/utils/RepeatUtils.kt",
          "extension" : "kt",
          "linesOfCode" : 131,
          "unitsCount" : 7,
          "unitsMcCabeIndexSum" : 18,
          "linesOfCodeInUnits" : 102
        },
        "sourceFileCleanedLinesOfCode" : 108,
        "startLine" : 10,
        "endLine" : 15,
        "cleanedStartLine" : 4,
        "cleanedEndLine" : 9,
        "percentage" : 5.555555555555555,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/utils/RepeatUtils.kt",
          "extension" : "kt",
          "linesOfCode" : 131,
          "unitsCount" : 7,
          "unitsMcCabeIndexSum" : 18,
          "linesOfCodeInUnits" : 102
        },
        "sourceFileCleanedLinesOfCode" : 108,
        "startLine" : 27,
        "endLine" : 32,
        "cleanedStartLine" : 17,
        "cleanedEndLine" : 22,
        "percentage" : 5.555555555555555,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/utils/Locators.kt",
          "extension" : "kt",
          "linesOfCode" : 82,
          "unitsCount" : 8,
          "unitsMcCabeIndexSum" : 8,
          "linesOfCodeInUnits" : 67
        },
        "sourceFileCleanedLinesOfCode" : 69,
        "startLine" : 31,
        "endLine" : 36,
        "cleanedStartLine" : 19,
        "cleanedEndLine" : 24,
        "percentage" : 8.695652173913043,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/utils/Locators.kt",
          "extension" : "kt",
          "linesOfCode" : 82,
          "unitsCount" : 8,
          "unitsMcCabeIndexSum" : 8,
          "linesOfCodeInUnits" : 67
        },
        "sourceFileCleanedLinesOfCode" : 69,
        "startLine" : 42,
        "endLine" : 47,
        "cleanedStartLine" : 28,
        "cleanedEndLine" : 33,
        "percentage" : 8.695652173913043,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 216,
        "endLine" : 221,
        "cleanedStartLine" : 145,
        "cleanedEndLine" : 150,
        "percentage" : 2.150537634408602,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 315,
        "endLine" : 320,
        "cleanedStartLine" : 224,
        "cleanedEndLine" : 229,
        "percentage" : 2.150537634408602,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "remote-fixtures/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 40,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 29,
        "startLine" : 38,
        "endLine" : 43,
        "cleanedStartLine" : 24,
        "cleanedEndLine" : 29,
        "percentage" : 20.689655172413794,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "remote-robot/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 37,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 28,
        "startLine" : 37,
        "endLine" : 42,
        "cleanedStartLine" : 23,
        "cleanedEndLine" : 28,
        "percentage" : 21.428571428571427,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/ActionLinkFixture.kt",
          "extension" : "kt",
          "linesOfCode" : 20,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 14,
        "startLine" : 11,
        "endLine" : 17,
        "cleanedStartLine" : 5,
        "cleanedEndLine" : 10,
        "percentage" : 42.857142857142854,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/JLabelFixture.kt",
          "extension" : "kt",
          "linesOfCode" : 30,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 21,
        "startLine" : 13,
        "endLine" : 18,
        "cleanedStartLine" : 5,
        "cleanedEndLine" : 10,
        "percentage" : 28.571428571428573,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/JavaScriptApi.kt",
          "extension" : "kt",
          "linesOfCode" : 179,
          "unitsCount" : 16,
          "unitsMcCabeIndexSum" : 16,
          "linesOfCodeInUnits" : 143
        },
        "sourceFileCleanedLinesOfCode" : 155,
        "startLine" : 81,
        "endLine" : 86,
        "cleanedStartLine" : 56,
        "cleanedEndLine" : 61,
        "percentage" : 3.870967741935484,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/JavaScriptApi.kt",
          "extension" : "kt",
          "linesOfCode" : 179,
          "unitsCount" : 16,
          "unitsMcCabeIndexSum" : 16,
          "linesOfCodeInUnits" : 143
        },
        "sourceFileCleanedLinesOfCode" : 155,
        "startLine" : 92,
        "endLine" : 97,
        "cleanedStartLine" : 65,
        "cleanedEndLine" : 70,
        "percentage" : 3.870967741935484,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "ide-launcher/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 31,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 25,
        "startLine" : 22,
        "endLine" : 27,
        "cleanedStartLine" : 18,
        "cleanedEndLine" : 23,
        "percentage" : 24.0,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "remote-fixtures/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 40,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 29,
        "startLine" : 38,
        "endLine" : 43,
        "cleanedStartLine" : 24,
        "cleanedEndLine" : 29,
        "percentage" : 20.689655172413794,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
          "extension" : "kt",
          "linesOfCode" : 355,
          "unitsCount" : 26,
          "unitsMcCabeIndexSum" : 49,
          "linesOfCodeInUnits" : 298
        },
        "sourceFileCleanedLinesOfCode" : 254,
        "startLine" : 297,
        "endLine" : 304,
        "cleanedStartLine" : 187,
        "cleanedEndLine" : 192,
        "percentage" : 2.3622047244094486,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
          "extension" : "kt",
          "linesOfCode" : 355,
          "unitsCount" : 26,
          "unitsMcCabeIndexSum" : 49,
          "linesOfCodeInUnits" : 298
        },
        "sourceFileCleanedLinesOfCode" : 254,
        "startLine" : 312,
        "endLine" : 319,
        "cleanedStartLine" : 197,
        "cleanedEndLine" : 202,
        "percentage" : 2.3622047244094486,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 216,
        "endLine" : 221,
        "cleanedStartLine" : 145,
        "cleanedEndLine" : 150,
        "percentage" : 2.150537634408602,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 230,
        "endLine" : 235,
        "cleanedStartLine" : 157,
        "cleanedEndLine" : 162,
        "percentage" : 2.150537634408602,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "ide-launcher/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 31,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 25,
        "startLine" : 22,
        "endLine" : 27,
        "cleanedStartLine" : 18,
        "cleanedEndLine" : 23,
        "percentage" : 24.0,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "remote-robot/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 37,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 28,
        "startLine" : 37,
        "endLine" : 42,
        "cleanedStartLine" : 23,
        "cleanedEndLine" : 28,
        "percentage" : 21.428571428571427,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/JavaScriptApi.kt",
          "extension" : "kt",
          "linesOfCode" : 179,
          "unitsCount" : 16,
          "unitsMcCabeIndexSum" : 16,
          "linesOfCodeInUnits" : 143
        },
        "sourceFileCleanedLinesOfCode" : 155,
        "startLine" : 133,
        "endLine" : 138,
        "cleanedStartLine" : 97,
        "cleanedEndLine" : 102,
        "percentage" : 3.870967741935484,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/JavaScriptApi.kt",
          "extension" : "kt",
          "linesOfCode" : 179,
          "unitsCount" : 16,
          "unitsMcCabeIndexSum" : 16,
          "linesOfCodeInUnits" : 143
        },
        "sourceFileCleanedLinesOfCode" : 155,
        "startLine" : 145,
        "endLine" : 150,
        "cleanedStartLine" : 107,
        "cleanedEndLine" : 112,
        "percentage" : 3.870967741935484,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/JavaScriptApi.kt",
          "extension" : "kt",
          "linesOfCode" : 179,
          "unitsCount" : 16,
          "unitsMcCabeIndexSum" : 16,
          "linesOfCodeInUnits" : 143
        },
        "sourceFileCleanedLinesOfCode" : 155,
        "startLine" : 38,
        "endLine" : 43,
        "cleanedStartLine" : 21,
        "cleanedEndLine" : 26,
        "percentage" : 3.870967741935484,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/JavaScriptApi.kt",
          "extension" : "kt",
          "linesOfCode" : 179,
          "unitsCount" : 16,
          "unitsMcCabeIndexSum" : 16,
          "linesOfCodeInUnits" : 143
        },
        "sourceFileCleanedLinesOfCode" : 155,
        "startLine" : 49,
        "endLine" : 54,
        "cleanedStartLine" : 30,
        "cleanedEndLine" : 35,
        "percentage" : 3.870967741935484,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
          "extension" : "kt",
          "linesOfCode" : 355,
          "unitsCount" : 26,
          "unitsMcCabeIndexSum" : 49,
          "linesOfCodeInUnits" : 298
        },
        "sourceFileCleanedLinesOfCode" : 254,
        "startLine" : 181,
        "endLine" : 186,
        "cleanedStartLine" : 107,
        "cleanedEndLine" : 112,
        "percentage" : 2.3622047244094486,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "robot-server-core/src/main/kotlin/com/intellij/remoterobot/services/IdeRobot.kt",
          "extension" : "kt",
          "linesOfCode" : 355,
          "unitsCount" : 26,
          "unitsMcCabeIndexSum" : 49,
          "linesOfCodeInUnits" : 298
        },
        "sourceFileCleanedLinesOfCode" : 254,
        "startLine" : 232,
        "endLine" : 237,
        "cleanedStartLine" : 141,
        "cleanedEndLine" : 146,
        "percentage" : 2.3622047244094486,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/JavaScriptApi.kt",
          "extension" : "kt",
          "linesOfCode" : 179,
          "unitsCount" : 16,
          "unitsMcCabeIndexSum" : 16,
          "linesOfCodeInUnits" : 143
        },
        "sourceFileCleanedLinesOfCode" : 155,
        "startLine" : 180,
        "endLine" : 185,
        "cleanedStartLine" : 136,
        "cleanedEndLine" : 141,
        "percentage" : 3.870967741935484,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/JavaScriptApi.kt",
          "extension" : "kt",
          "linesOfCode" : 179,
          "unitsCount" : 16,
          "unitsMcCabeIndexSum" : 16,
          "linesOfCodeInUnits" : 143
        },
        "sourceFileCleanedLinesOfCode" : 155,
        "startLine" : 192,
        "endLine" : 197,
        "cleanedStartLine" : 146,
        "cleanedEndLine" : 151,
        "percentage" : 3.870967741935484,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/RemoteRobot.kt",
          "extension" : "kt",
          "linesOfCode" : 239,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 1,
          "linesOfCodeInUnits" : 4
        },
        "sourceFileCleanedLinesOfCode" : 195,
        "startLine" : 50,
        "endLine" : 58,
        "cleanedStartLine" : 18,
        "cleanedEndLine" : 23,
        "percentage" : 3.076923076923077,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/fixtures/ContainerFixture.kt",
          "extension" : "kt",
          "linesOfCode" : 20,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 13,
        "startLine" : 21,
        "endLine" : 29,
        "cleanedStartLine" : 8,
        "cleanedEndLine" : 13,
        "percentage" : 46.15384615384615,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/JavaScriptApi.kt",
          "extension" : "kt",
          "linesOfCode" : 179,
          "unitsCount" : 16,
          "unitsMcCabeIndexSum" : 16,
          "linesOfCodeInUnits" : 143
        },
        "sourceFileCleanedLinesOfCode" : 155,
        "startLine" : 170,
        "endLine" : 175,
        "cleanedStartLine" : 128,
        "cleanedEndLine" : 133,
        "percentage" : 3.870967741935484,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "remote-robot/src/main/kotlin/com/intellij/remoterobot/JavaScriptApi.kt",
          "extension" : "kt",
          "linesOfCode" : 179,
          "unitsCount" : 16,
          "unitsMcCabeIndexSum" : 16,
          "linesOfCodeInUnits" : 143
        },
        "sourceFileCleanedLinesOfCode" : 155,
        "startLine" : 195,
        "endLine" : 200,
        "cleanedStartLine" : 149,
        "cleanedEndLine" : 154,
        "percentage" : 3.870967741935484,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    } ],
    "mostFrequentDuplicates" : [ {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 87,
        "endLine" : 92,
        "cleanedStartLine" : 44,
        "cleanedEndLine" : 49,
        "percentage" : 2.150537634408602,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 113,
        "endLine" : 118,
        "cleanedStartLine" : 66,
        "cleanedEndLine" : 71,
        "percentage" : 2.150537634408602,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 153,
        "endLine" : 158,
        "cleanedStartLine" : 98,
        "cleanedEndLine" : 103,
        "percentage" : 2.150537634408602,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 86,
        "endLine" : 91,
        "cleanedStartLine" : 43,
        "cleanedEndLine" : 48,
        "percentage" : 2.150537634408602,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 112,
        "endLine" : 117,
        "cleanedStartLine" : 65,
        "cleanedEndLine" : 70,
        "percentage" : 2.150537634408602,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 152,
        "endLine" : 157,
        "cleanedStartLine" : 97,
        "cleanedEndLine" : 102,
        "percentage" : 2.150537634408602,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "test-recorder/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 42,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 30,
        "startLine" : 21,
        "endLine" : 30,
        "cleanedStartLine" : 12,
        "cleanedEndLine" : 17,
        "percentage" : 20.0,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "robot-server-core/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 47,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 35,
        "startLine" : 28,
        "endLine" : 37,
        "cleanedStartLine" : 17,
        "cleanedEndLine" : 22,
        "percentage" : 17.142857142857142,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "remote-robot/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 37,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 28,
        "startLine" : 22,
        "endLine" : 31,
        "cleanedStartLine" : 14,
        "cleanedEndLine" : 19,
        "percentage" : 21.428571428571427,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 216,
        "endLine" : 221,
        "cleanedStartLine" : 145,
        "cleanedEndLine" : 150,
        "percentage" : 2.150537634408602,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 230,
        "endLine" : 235,
        "cleanedStartLine" : 157,
        "cleanedEndLine" : 162,
        "percentage" : 2.150537634408602,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 300,
        "endLine" : 305,
        "cleanedStartLine" : 211,
        "cleanedEndLine" : 216,
        "percentage" : 2.150537634408602,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "robot-server-plugin/src/main/kotlin/com/intellij/remoterobot/RobotServerImpl.kt",
          "extension" : "kt",
          "linesOfCode" : 368,
          "unitsCount" : 1,
          "unitsMcCabeIndexSum" : 2,
          "linesOfCodeInUnits" : 278
        },
        "sourceFileCleanedLinesOfCode" : 279,
        "startLine" : 315,
        "endLine" : 320,
        "cleanedStartLine" : 224,
        "cleanedEndLine" : 229,
        "percentage" : 2.150537634408602,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/TextEditorFixture.kt",
          "extension" : "kt",
          "linesOfCode" : 228,
          "unitsCount" : 9,
          "unitsMcCabeIndexSum" : 14,
          "linesOfCodeInUnits" : 122
        },
        "sourceFileCleanedLinesOfCode" : 182,
        "startLine" : 122,
        "endLine" : 130,
        "cleanedStartLine" : 83,
        "cleanedEndLine" : 88,
        "percentage" : 3.2967032967032965,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/TextEditorFixture.kt",
          "extension" : "kt",
          "linesOfCode" : 228,
          "unitsCount" : 9,
          "unitsMcCabeIndexSum" : 14,
          "linesOfCodeInUnits" : 122
        },
        "sourceFileCleanedLinesOfCode" : 182,
        "startLine" : 181,
        "endLine" : 189,
        "cleanedStartLine" : 128,
        "cleanedEndLine" : 133,
        "percentage" : 3.2967032967032965,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/TextEditorFixture.kt",
          "extension" : "kt",
          "linesOfCode" : 228,
          "unitsCount" : 9,
          "unitsMcCabeIndexSum" : 14,
          "linesOfCodeInUnits" : 122
        },
        "sourceFileCleanedLinesOfCode" : 182,
        "startLine" : 203,
        "endLine" : 211,
        "cleanedStartLine" : 143,
        "cleanedEndLine" : 148,
        "percentage" : 3.2967032967032965,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "test-recorder/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 42,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 30,
        "startLine" : 20,
        "endLine" : 29,
        "cleanedStartLine" : 11,
        "cleanedEndLine" : 16,
        "percentage" : 20.0,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "robot-server-core/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 47,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 35,
        "startLine" : 27,
        "endLine" : 36,
        "cleanedStartLine" : 16,
        "cleanedEndLine" : 21,
        "percentage" : 17.142857142857142,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "remote-robot/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 37,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 28,
        "startLine" : 21,
        "endLine" : 30,
        "cleanedStartLine" : 13,
        "cleanedEndLine" : 18,
        "percentage" : 21.428571428571427,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "remote-fixtures/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 40,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 29,
        "startLine" : 38,
        "endLine" : 43,
        "cleanedStartLine" : 24,
        "cleanedEndLine" : 29,
        "percentage" : 20.689655172413794,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "remote-robot/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 37,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 28,
        "startLine" : 37,
        "endLine" : 42,
        "cleanedStartLine" : 23,
        "cleanedEndLine" : 28,
        "percentage" : 21.428571428571427,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "ide-launcher/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 31,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 25,
        "startLine" : 22,
        "endLine" : 27,
        "cleanedStartLine" : 18,
        "cleanedEndLine" : 23,
        "percentage" : 24.0,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "remote-fixtures/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 40,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 29,
        "startLine" : 28,
        "endLine" : 35,
        "cleanedStartLine" : 16,
        "cleanedEndLine" : 21,
        "percentage" : 20.689655172413794,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "remote-robot/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 37,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 28,
        "startLine" : 27,
        "endLine" : 34,
        "cleanedStartLine" : 15,
        "cleanedEndLine" : 20,
        "percentage" : 21.428571428571427,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "ide-launcher/build.gradle.kts",
          "extension" : "kts",
          "linesOfCode" : 31,
          "unitsCount" : 0,
          "unitsMcCabeIndexSum" : 0,
          "linesOfCodeInUnits" : 0
        },
        "sourceFileCleanedLinesOfCode" : 25,
        "startLine" : 12,
        "endLine" : 19,
        "cleanedStartLine" : 10,
        "cleanedEndLine" : 15,
        "percentage" : 24.0,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    }, {
      "displayContent" : "",
      "duplicatedFileBlocks" : [ {
        "sourceFile" : {
          "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/TextEditorFixture.kt",
          "extension" : "kt",
          "linesOfCode" : 228,
          "unitsCount" : 9,
          "unitsMcCabeIndexSum" : 14,
          "linesOfCodeInUnits" : 122
        },
        "sourceFileCleanedLinesOfCode" : 182,
        "startLine" : 121,
        "endLine" : 129,
        "cleanedStartLine" : 82,
        "cleanedEndLine" : 87,
        "percentage" : 3.2967032967032965,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/TextEditorFixture.kt",
          "extension" : "kt",
          "linesOfCode" : 228,
          "unitsCount" : 9,
          "unitsMcCabeIndexSum" : 14,
          "linesOfCodeInUnits" : 122
        },
        "sourceFileCleanedLinesOfCode" : 182,
        "startLine" : 180,
        "endLine" : 188,
        "cleanedStartLine" : 127,
        "cleanedEndLine" : 132,
        "percentage" : 3.2967032967032965,
        "blockSize" : 6
      }, {
        "sourceFile" : {
          "relativePath" : "remote-fixtures/src/main/kotlin/com/intellij/remoterobot/fixtures/TextEditorFixture.kt",
          "extension" : "kt",
          "linesOfCode" : 228,
          "unitsCount" : 9,
          "unitsMcCabeIndexSum" : 14,
          "linesOfCodeInUnits" : 122
        },
        "sourceFileCleanedLinesOfCode" : 182,
        "startLine" : 202,
        "endLine" : 210,
        "cleanedStartLine" : 142,
        "cleanedEndLine" : 147,
        "percentage" : 3.2967032967032965,
        "blockSize" : 6
      } ],
      "blockSize" : 6
    } ]
  },
  "contributorsAnalysisResults" : {
    "latestCommitDate" : "2025-03-03",
    "contributors" : [ {
      "email" : "eugene.nizienko@jetbrains.com",
      "userName" : "Eugene Nizienko",
      "commitsCount" : 241,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 7,
      "firstCommitDate" : "2020-10-07",
      "latestCommitDate" : "2025-03-03",
      "activeYears" : [ "2020", "2021", "2022", "2023", "2024", "2025" ],
      "commitDates" : [ "2025-03-03", "2024-02-12", "2024-02-08", "2024-02-03", "2024-01-26", "2023-12-27", "2023-12-08", "2023-12-05", "2023-11-07", "2023-11-02", "2023-10-23", "2023-09-19", "2023-08-28", "2023-08-27", "2023-08-23", "2023-08-14", "2023-08-11", "2023-08-07", "2023-07-31", "2023-07-17", "2023-07-06", "2023-06-09", "2023-05-28", "2023-05-12", "2023-03-29", "2023-03-20", "2023-03-08", "2023-03-07", "2023-03-03", "2023-03-01", "2023-02-28", "2023-02-21", "2023-02-16", "2023-02-07", "2023-01-31", "2023-01-30", "2023-01-19", "2023-01-02", "2022-11-28", "2022-11-24", "2022-11-21", "2022-11-16", "2022-11-15", "2022-11-08", "2022-10-24", "2022-10-20", "2022-10-18", "2022-10-17", "2022-10-13", "2022-08-24", "2022-08-23", "2022-08-22", "2022-08-09", "2022-08-04", "2022-08-08", "2022-07-20", "2022-07-19", "2022-07-13", "2022-07-06", "2022-06-27", "2022-06-23", "2022-06-14", "2022-06-03", "2022-05-02", "2022-04-06", "2022-03-23", "2022-03-09", "2022-03-08", "2022-02-21", "2022-02-07", "2022-01-27", "2022-01-26", "2022-02-01", "2022-01-31", "2022-01-19", "2022-01-10", "2021-12-22", "2021-12-15", "2021-12-13", "2021-12-06", "2021-11-11", "2021-11-06", "2021-11-03", "2021-10-26", "2021-10-25", "2021-10-21", "2021-10-19", "2021-10-11", "2021-10-08", "2021-08-24", "2021-08-17", "2021-08-10", "2021-07-21", "2021-07-20", "2021-07-19", "2021-07-16", "2021-07-15", "2021-07-14", "2021-07-07", "2021-06-23", "2021-06-21", "2021-05-18", "2021-05-13", "2021-05-12", "2021-05-02", "2021-04-29", "2021-04-21", "2021-03-31", "2021-03-30", "2021-03-22", "2021-03-02", "2021-01-25", "2021-01-13", "2021-01-15", "2021-01-12", "2021-01-11", "2021-01-07", "2020-12-28", "2020-12-21", "2020-12-15", "2020-12-07", "2020-11-25", "2020-11-03", "2020-10-29", "2020-10-28", "2020-10-27", "2020-10-26", "2020-10-22", "2020-10-12", "2020-10-08", "2020-10-07" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "vladislav.shishov@jetbrains.com",
      "userName" : "vladislav.shishov",
      "commitsCount" : 79,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2020-12-03",
      "latestCommitDate" : "2024-01-08",
      "activeYears" : [ "2020", "2021", "2022", "2023", "2024" ],
      "commitDates" : [ "2024-01-08", "2024-01-04", "2023-07-05", "2023-06-20", "2023-02-13", "2022-11-24", "2022-11-23", "2022-11-22", "2022-11-17", "2022-11-10", "2022-11-07", "2022-08-16", "2022-08-05", "2022-07-05", "2022-06-27", "2022-06-20", "2022-06-15", "2022-05-18", "2022-05-15", "2022-05-11", "2022-05-06", "2022-04-29", "2022-04-28", "2022-02-18", "2022-02-17", "2022-01-18", "2022-01-17", "2022-01-10", "2021-12-30", "2021-12-29", "2022-01-12", "2022-01-11", "2021-11-12", "2021-11-03", "2021-10-13", "2021-10-07", "2021-10-04", "2021-09-13", "2021-06-16", "2021-06-09", "2021-06-02", "2021-05-14", "2021-05-12", "2021-05-07", "2021-04-05", "2021-02-17", "2021-02-16", "2020-12-03" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "mikhail.kuznetsov@jetbrains.com",
      "userName" : "Mikhail Kuznetsov",
      "commitsCount" : 27,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2021-03-19",
      "latestCommitDate" : "2023-11-28",
      "activeYears" : [ "2021", "2022", "2023" ],
      "commitDates" : [ "2023-11-28", "2023-03-14", "2022-12-07", "2022-11-21", "2022-11-11", "2022-11-09", "2022-10-25", "2022-07-14", "2022-07-15", "2022-07-13", "2021-10-04", "2021-10-01", "2021-08-11", "2021-07-19", "2021-07-14", "2021-05-25", "2021-05-21", "2021-04-22", "2021-03-24", "2021-03-22", "2021-03-19" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "jakub.chrzanowski@jetbrains.com",
      "userName" : "Jakub Chrzanowski",
      "commitsCount" : 7,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2021-06-08",
      "latestCommitDate" : "2021-09-07",
      "activeYears" : [ "2021" ],
      "commitDates" : [ "2021-09-07", "2021-09-02", "2021-06-09", "2021-06-08" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "evgenii.novozhilov@jetbrains.com",
      "userName" : "Evgenii Novozhilov",
      "commitsCount" : 5,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 5,
      "firstCommitDate" : "2025-03-03",
      "latestCommitDate" : "2025-03-03",
      "activeYears" : [ "2025" ],
      "commitDates" : [ "2025-03-03" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "olkornii@redhat.com",
      "userName" : "Oleksii Korniienko",
      "commitsCount" : 5,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2021-10-06",
      "latestCommitDate" : "2021-10-19",
      "activeYears" : [ "2021" ],
      "commitDates" : [ "2021-10-19", "2021-10-06" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "elena.artamonova@jetbrains.com",
      "userName" : "Elena Artamonova",
      "commitsCount" : 3,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2022-10-10",
      "latestCommitDate" : "2022-10-12",
      "activeYears" : [ "2022" ],
      "commitDates" : [ "2022-10-12", "2022-10-10" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "alfredbr@amazon.com",
      "userName" : "Austin Brooks",
      "commitsCount" : 3,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2021-01-05",
      "latestCommitDate" : "2021-05-17",
      "activeYears" : [ "2021" ],
      "commitDates" : [ "2021-05-17", "2021-01-05" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "eugene.nizienko@gmail.com",
      "userName" : "nizienko",
      "commitsCount" : 2,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2024-05-25",
      "latestCommitDate" : "2024-05-25",
      "activeYears" : [ "2024" ],
      "commitDates" : [ "2024-05-25" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "rodion.iafarov@jetbrains.com",
      "userName" : "rwx788",
      "commitsCount" : 2,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2023-07-28",
      "latestCommitDate" : "2024-05-08",
      "activeYears" : [ "2023", "2024" ],
      "commitDates" : [ "2024-05-08", "2023-07-28" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "daniiltimashov30@gmail.com",
      "userName" : "Daniil Timashov",
      "commitsCount" : 1,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2024-05-02",
      "latestCommitDate" : "2024-05-02",
      "activeYears" : [ "2024" ],
      "commitDates" : [ "2024-05-02" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "alexpl292@gmail.com",
      "userName" : "Alex Plate",
      "commitsCount" : 1,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2024-01-05",
      "latestCommitDate" : "2024-01-05",
      "activeYears" : [ "2024" ],
      "commitDates" : [ "2024-01-05" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "arun@arun.blog",
      "userName" : "Arun Sathiya",
      "commitsCount" : 1,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2024-01-21",
      "latestCommitDate" : "2024-01-21",
      "activeYears" : [ "2024" ],
      "commitDates" : [ "2024-01-21" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "aroram18@mcmaster.ca",
      "userName" : "infiniteregrets",
      "commitsCount" : 1,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2023-12-27",
      "latestCommitDate" : "2023-12-27",
      "activeYears" : [ "2023" ],
      "commitDates" : [ "2023-12-27" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "vshov@hotmail.com",
      "userName" : "shishovv",
      "commitsCount" : 1,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2022-10-13",
      "latestCommitDate" : "2022-10-13",
      "activeYears" : [ "2022" ],
      "commitDates" : [ "2022-10-13" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "64742703+damien-urruty-sonarsource@users.noreply.github.com",
      "userName" : "Dam",
      "commitsCount" : 1,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2022-02-17",
      "latestCommitDate" : "2022-02-17",
      "activeYears" : [ "2022" ],
      "commitDates" : [ "2022-02-17" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "matthew.michihara@gmail.com",
      "userName" : "Matthew Michihara",
      "commitsCount" : 1,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2021-05-18",
      "latestCommitDate" : "2021-05-18",
      "activeYears" : [ "2021" ],
      "commitDates" : [ "2021-05-18" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "nizienko@outlook.com",
      "userName" : "eugene nizienko",
      "commitsCount" : 1,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2021-02-24",
      "latestCommitDate" : "2021-02-24",
      "activeYears" : [ "2021" ],
      "commitDates" : [ "2021-02-24" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "47592197+fxnm@users.noreply.github.com",
      "userName" : "fxnm",
      "commitsCount" : 1,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2021-01-03",
      "latestCommitDate" : "2021-01-03",
      "activeYears" : [ "2021" ],
      "commitDates" : [ "2021-01-03" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    }, {
      "email" : "jgafner@gmail.com",
      "userName" : "JG9",
      "commitsCount" : 1,
      "commitsCount30Days" : 0,
      "commitsCount90Days" : 0,
      "commitsCount180Days" : 0,
      "commitsCount365Days" : 0,
      "firstCommitDate" : "2020-12-21",
      "latestCommitDate" : "2020-12-21",
      "activeYears" : [ "2020" ],
      "commitDates" : [ "2020-12-21" ],
      "bot" : false,
      "active" : false,
      "rookie" : false
    } ],
    "contributorsPerYear" : [ {
      "timeSlot" : "2020",
      "contributorsCount" : 3,
      "commitsCount" : 23
    }, {
      "timeSlot" : "2021",
      "contributorsCount" : 9,
      "commitsCount" : 158
    }, {
      "timeSlot" : "2022",
      "contributorsCount" : 6,
      "commitsCount" : 106
    }, {
      "timeSlot" : "2023",
      "contributorsCount" : 5,
      "commitsCount" : 71
    }, {
      "timeSlot" : "2024",
      "contributorsCount" : 7,
      "commitsCount" : 14
    }, {
      "timeSlot" : "2025",
      "contributorsCount" : 2,
      "commitsCount" : 12
    } ],
    "contributorsPerMonth" : [ {
      "timeSlot" : "2020-10",
      "contributorsCount" : 1,
      "commitsCount" : 14
    }, {
      "timeSlot" : "2020-11",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2020-12",
      "contributorsCount" : 3,
      "commitsCount" : 7
    }, {
      "timeSlot" : "2021-01",
      "contributorsCount" : 3,
      "commitsCount" : 13
    }, {
      "timeSlot" : "2021-02",
      "contributorsCount" : 2,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2021-03",
      "contributorsCount" : 2,
      "commitsCount" : 27
    }, {
      "timeSlot" : "2021-04",
      "contributorsCount" : 3,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2021-05",
      "contributorsCount" : 5,
      "commitsCount" : 18
    }, {
      "timeSlot" : "2021-06",
      "contributorsCount" : 3,
      "commitsCount" : 13
    }, {
      "timeSlot" : "2021-07",
      "contributorsCount" : 2,
      "commitsCount" : 13
    }, {
      "timeSlot" : "2021-08",
      "contributorsCount" : 2,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2021-09",
      "contributorsCount" : 2,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2021-10",
      "contributorsCount" : 4,
      "commitsCount" : 20
    }, {
      "timeSlot" : "2021-11",
      "contributorsCount" : 2,
      "commitsCount" : 19
    }, {
      "timeSlot" : "2021-12",
      "contributorsCount" : 2,
      "commitsCount" : 20
    }, {
      "timeSlot" : "2022-01",
      "contributorsCount" : 2,
      "commitsCount" : 15
    }, {
      "timeSlot" : "2022-02",
      "contributorsCount" : 3,
      "commitsCount" : 9
    }, {
      "timeSlot" : "2022-03",
      "contributorsCount" : 1,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2022-04",
      "contributorsCount" : 2,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2022-05",
      "contributorsCount" : 2,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2022-06",
      "contributorsCount" : 2,
      "commitsCount" : 10
    }, {
      "timeSlot" : "2022-07",
      "contributorsCount" : 3,
      "commitsCount" : 13
    }, {
      "timeSlot" : "2022-08",
      "contributorsCount" : 2,
      "commitsCount" : 11
    }, {
      "timeSlot" : "2022-10",
      "contributorsCount" : 4,
      "commitsCount" : 11
    }, {
      "timeSlot" : "2022-11",
      "contributorsCount" : 3,
      "commitsCount" : 23
    }, {
      "timeSlot" : "2022-12",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-01",
      "contributorsCount" : 1,
      "commitsCount" : 6
    }, {
      "timeSlot" : "2023-02",
      "contributorsCount" : 2,
      "commitsCount" : 9
    }, {
      "timeSlot" : "2023-03",
      "contributorsCount" : 2,
      "commitsCount" : 11
    }, {
      "timeSlot" : "2023-05",
      "contributorsCount" : 1,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2023-06",
      "contributorsCount" : 2,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2023-07",
      "contributorsCount" : 3,
      "commitsCount" : 9
    }, {
      "timeSlot" : "2023-08",
      "contributorsCount" : 1,
      "commitsCount" : 9
    }, {
      "timeSlot" : "2023-09",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-10",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-11",
      "contributorsCount" : 2,
      "commitsCount" : 13
    }, {
      "timeSlot" : "2023-12",
      "contributorsCount" : 2,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2024-01",
      "contributorsCount" : 4,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2024-02",
      "contributorsCount" : 1,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2024-05",
      "contributorsCount" : 3,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2025-03",
      "contributorsCount" : 2,
      "commitsCount" : 12
    } ],
    "contributorsPerDay" : [ {
      "timeSlot" : "2020-10-07",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2020-10-08",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2020-10-12",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2020-10-22",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-10-26",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-10-27",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-10-28",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-10-29",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2020-11-03",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-11-25",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-12-03",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-12-07",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-12-15",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-12-21",
      "contributorsCount" : 2,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2020-12-28",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-01-03",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-01-05",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-01-07",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-01-11",
      "contributorsCount" : 1,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2021-01-12",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-01-13",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-01-15",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-01-25",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-02-16",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-02-17",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-02-24",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-03-02",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-03-19",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-03-22",
      "contributorsCount" : 2,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2021-03-24",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-03-30",
      "contributorsCount" : 1,
      "commitsCount" : 18
    }, {
      "timeSlot" : "2021-03-31",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-04-05",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-04-21",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-04-22",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-04-29",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-05-02",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-05-07",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-05-12",
      "contributorsCount" : 2,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2021-05-13",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-05-14",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-05-17",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-05-18",
      "contributorsCount" : 2,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2021-05-21",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-05-25",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-06-02",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-06-08",
      "contributorsCount" : 1,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2021-06-09",
      "contributorsCount" : 2,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-06-16",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-06-21",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-06-23",
      "contributorsCount" : 1,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2021-07-07",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-07-14",
      "contributorsCount" : 2,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-07-15",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-07-16",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-07-19",
      "contributorsCount" : 2,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2021-07-20",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-07-21",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-08-10",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-08-11",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-08-17",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-08-24",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-09-02",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-09-07",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-09-13",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-10-01",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-10-04",
      "contributorsCount" : 2,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2021-10-06",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-10-07",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-10-08",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-10-11",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-10-13",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-10-19",
      "contributorsCount" : 2,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2021-10-21",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-10-25",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-10-26",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-11-03",
      "contributorsCount" : 2,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2021-11-06",
      "contributorsCount" : 1,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2021-11-11",
      "contributorsCount" : 1,
      "commitsCount" : 9
    }, {
      "timeSlot" : "2021-11-12",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-12-06",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-12-13",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-12-15",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-12-22",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-12-29",
      "contributorsCount" : 1,
      "commitsCount" : 10
    }, {
      "timeSlot" : "2021-12-30",
      "contributorsCount" : 1,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2022-01-10",
      "contributorsCount" : 2,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2022-01-11",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-01-12",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-01-17",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2022-01-18",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-01-19",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-01-26",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2022-01-27",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-01-31",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-02-01",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2022-02-07",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2022-02-17",
      "contributorsCount" : 2,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2022-02-18",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2022-02-21",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-03-08",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2022-03-09",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-03-23",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-04-06",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-04-28",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2022-04-29",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-05-02",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-05-06",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-05-11",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-05-15",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-05-18",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-06-03",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2022-06-14",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-06-15",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-06-20",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-06-23",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-06-27",
      "contributorsCount" : 2,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2022-07-05",
      "contributorsCount" : 1,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2022-07-06",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-07-13",
      "contributorsCount" : 2,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2022-07-14",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2022-07-15",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-07-19",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-07-20",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-08-04",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-08-05",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-08-08",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-08-09",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-08-16",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-08-22",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2022-08-23",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-08-24",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2022-10-10",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-10-12",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2022-10-13",
      "contributorsCount" : 2,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2022-10-17",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2022-10-18",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-10-20",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-10-24",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-10-25",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-11-07",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-11-08",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-11-09",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-11-10",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2022-11-11",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-11-15",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2022-11-16",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-11-17",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-11-21",
      "contributorsCount" : 2,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2022-11-22",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2022-11-23",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2022-11-24",
      "contributorsCount" : 2,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2022-11-28",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2022-12-07",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-01-02",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-01-19",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2023-01-30",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-01-31",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2023-02-07",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-02-13",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-02-16",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-02-21",
      "contributorsCount" : 1,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2023-02-28",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-03-01",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-03-03",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-03-07",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2023-03-08",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2023-03-14",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-03-20",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-03-29",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2023-05-12",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-05-28",
      "contributorsCount" : 1,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2023-06-09",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-06-20",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-07-05",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-07-06",
      "contributorsCount" : 1,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2023-07-17",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2023-07-28",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-07-31",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-08-07",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2023-08-11",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-08-14",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-08-23",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-08-27",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-08-28",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2023-09-19",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-10-23",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-11-02",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-11-07",
      "contributorsCount" : 1,
      "commitsCount" : 11
    }, {
      "timeSlot" : "2023-11-28",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-12-05",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2023-12-08",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-12-27",
      "contributorsCount" : 2,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2024-01-04",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2024-01-05",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2024-01-08",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2024-01-21",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2024-01-26",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2024-02-03",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2024-02-08",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2024-02-12",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2024-05-02",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2024-05-08",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2024-05-25",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2025-03-03",
      "contributorsCount" : 2,
      "commitsCount" : 12
    } ],
    "contributorsPerWeek" : [ {
      "timeSlot" : "2020-10-05",
      "contributorsCount" : 1,
      "commitsCount" : 6
    }, {
      "timeSlot" : "2020-10-12",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2020-10-19",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-10-26",
      "contributorsCount" : 1,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2020-11-02",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-11-23",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-11-30",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-12-07",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-12-14",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2020-12-21",
      "contributorsCount" : 2,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2020-12-28",
      "contributorsCount" : 2,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2021-01-04",
      "contributorsCount" : 2,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2021-01-11",
      "contributorsCount" : 1,
      "commitsCount" : 8
    }, {
      "timeSlot" : "2021-01-25",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-02-15",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-02-22",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-03-01",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-03-15",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-03-22",
      "contributorsCount" : 2,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2021-03-29",
      "contributorsCount" : 1,
      "commitsCount" : 20
    }, {
      "timeSlot" : "2021-04-05",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-04-19",
      "contributorsCount" : 2,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-04-26",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2021-05-03",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-05-10",
      "contributorsCount" : 2,
      "commitsCount" : 8
    }, {
      "timeSlot" : "2021-05-17",
      "contributorsCount" : 4,
      "commitsCount" : 6
    }, {
      "timeSlot" : "2021-05-24",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-05-31",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-06-07",
      "contributorsCount" : 2,
      "commitsCount" : 6
    }, {
      "timeSlot" : "2021-06-14",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-06-21",
      "contributorsCount" : 1,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2021-07-05",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-07-12",
      "contributorsCount" : 2,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2021-07-19",
      "contributorsCount" : 2,
      "commitsCount" : 8
    }, {
      "timeSlot" : "2021-08-09",
      "contributorsCount" : 2,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-08-16",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-08-23",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-08-30",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-09-06",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-09-13",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-09-27",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-10-04",
      "contributorsCount" : 4,
      "commitsCount" : 10
    }, {
      "timeSlot" : "2021-10-11",
      "contributorsCount" : 2,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-10-18",
      "contributorsCount" : 2,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2021-10-25",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-11-01",
      "contributorsCount" : 2,
      "commitsCount" : 9
    }, {
      "timeSlot" : "2021-11-08",
      "contributorsCount" : 2,
      "commitsCount" : 10
    }, {
      "timeSlot" : "2021-12-06",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2021-12-13",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2021-12-20",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2021-12-27",
      "contributorsCount" : 1,
      "commitsCount" : 14
    }, {
      "timeSlot" : "2022-01-10",
      "contributorsCount" : 2,
      "commitsCount" : 6
    }, {
      "timeSlot" : "2022-01-17",
      "contributorsCount" : 2,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2022-01-24",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2022-01-31",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2022-02-07",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2022-02-14",
      "contributorsCount" : 2,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2022-02-21",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-03-07",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2022-03-21",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-04-04",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-04-25",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2022-05-02",
      "contributorsCount" : 2,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2022-05-09",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2022-05-16",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-05-30",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2022-06-13",
      "contributorsCount" : 2,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2022-06-20",
      "contributorsCount" : 2,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2022-06-27",
      "contributorsCount" : 2,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2022-07-04",
      "contributorsCount" : 2,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2022-07-11",
      "contributorsCount" : 2,
      "commitsCount" : 6
    }, {
      "timeSlot" : "2022-07-18",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2022-08-01",
      "contributorsCount" : 2,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2022-08-08",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2022-08-15",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2022-08-22",
      "contributorsCount" : 1,
      "commitsCount" : 6
    }, {
      "timeSlot" : "2022-10-10",
      "contributorsCount" : 3,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2022-10-17",
      "contributorsCount" : 1,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2022-10-24",
      "contributorsCount" : 2,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2022-11-07",
      "contributorsCount" : 3,
      "commitsCount" : 6
    }, {
      "timeSlot" : "2022-11-14",
      "contributorsCount" : 2,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2022-11-21",
      "contributorsCount" : 3,
      "commitsCount" : 11
    }, {
      "timeSlot" : "2022-11-28",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2022-12-05",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-01-02",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-01-16",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2023-01-30",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2023-02-06",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-02-13",
      "contributorsCount" : 2,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2023-02-20",
      "contributorsCount" : 1,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2023-02-27",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2023-03-06",
      "contributorsCount" : 1,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2023-03-13",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-03-20",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-03-27",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2023-05-08",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-05-22",
      "contributorsCount" : 1,
      "commitsCount" : 4
    }, {
      "timeSlot" : "2023-06-05",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-06-19",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-07-03",
      "contributorsCount" : 2,
      "commitsCount" : 5
    }, {
      "timeSlot" : "2023-07-17",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2023-07-24",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-07-31",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-08-07",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2023-08-14",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-08-21",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2023-08-28",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2023-09-18",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-10-23",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-10-30",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-11-06",
      "contributorsCount" : 1,
      "commitsCount" : 11
    }, {
      "timeSlot" : "2023-11-27",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2023-12-04",
      "contributorsCount" : 1,
      "commitsCount" : 3
    }, {
      "timeSlot" : "2023-12-25",
      "contributorsCount" : 2,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2024-01-01",
      "contributorsCount" : 2,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2024-01-08",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2024-01-15",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2024-01-22",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2024-01-29",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2024-02-05",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2024-02-12",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2024-04-29",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2024-05-06",
      "contributorsCount" : 1,
      "commitsCount" : 1
    }, {
      "timeSlot" : "2024-05-20",
      "contributorsCount" : 1,
      "commitsCount" : 2
    }, {
      "timeSlot" : "2025-03-03",
      "contributorsCount" : 2,
      "commitsCount" : 12
    } ],
    "commitsPerExtensions" : [ {
      "extension" : "kt",
      "commitsCount" : 551,
      "committers" : [ "evgenii.novozhilov@jetbrains.com", "eugene.nizienko@gmail.com", "rodion.iafarov@jetbrains.com", "daniiltimashov30@gmail.com", "eugene.nizienko@jetbrains.com", "alexpl292@gmail.com", "vladislav.shishov@jetbrains.com", "aroram18@mcmaster.ca", "mikhail.kuznetsov@jetbrains.com", "vshov@hotmail.com", "elena.artamonova@jetbrains.com", "olkornii@redhat.com", "alfredbr@amazon.com", "jgafner@gmail.com" ],
      "filesCount" : 184,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "alfredbr@amazon.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 2
      }, {
        "contributor" : "olkornii@redhat.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 5
      }, {
        "contributor" : "eugene.nizienko@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "eugene.nizienko@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 308
      }, {
        "contributor" : "vshov@hotmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "elena.artamonova@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 4
      }, {
        "contributor" : "daniiltimashov30@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "jgafner@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "aroram18@mcmaster.ca",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "rodion.iafarov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 3
      }, {
        "contributor" : "alexpl292@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "evgenii.novozhilov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 2
      }, {
        "contributor" : "vladislav.shishov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 171
      }, {
        "contributor" : "mikhail.kuznetsov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 50
      } ]
    }, {
      "extension" : "kts",
      "commitsCount" : 108,
      "committers" : [ "eugene.nizienko@jetbrains.com", "evgenii.novozhilov@jetbrains.com", "mikhail.kuznetsov@jetbrains.com", "vladislav.shishov@jetbrains.com", "vshov@hotmail.com", "elena.artamonova@jetbrains.com", "jakub.chrzanowski@jetbrains.com", "alfredbr@amazon.com", "47592197+fxnm@users.noreply.github.com", "jgafner@gmail.com" ],
      "filesCount" : 8,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "elena.artamonova@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 2
      }, {
        "contributor" : "alfredbr@amazon.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "jakub.chrzanowski@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 3
      }, {
        "contributor" : "jgafner@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 2
      }, {
        "contributor" : "47592197+fxnm@users.noreply.github.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "eugene.nizienko@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 69
      }, {
        "contributor" : "evgenii.novozhilov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 6
      }, {
        "contributor" : "vladislav.shishov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 19
      }, {
        "contributor" : "vshov@hotmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "mikhail.kuznetsov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 4
      } ]
    }, {
      "extension" : "md",
      "commitsCount" : 57,
      "committers" : [ "eugene.nizienko@gmail.com", "eugene.nizienko@jetbrains.com", "64742703+damien-urruty-sonarsource@users.noreply.github.com", "jakub.chrzanowski@jetbrains.com", "vladislav.shishov@jetbrains.com", "mikhail.kuznetsov@jetbrains.com", "matthew.michihara@gmail.com", "jgafner@gmail.com" ],
      "filesCount" : 4,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "matthew.michihara@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "jakub.chrzanowski@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 3
      }, {
        "contributor" : "jgafner@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "64742703+damien-urruty-sonarsource@users.noreply.github.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "eugene.nizienko@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "eugene.nizienko@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 46
      }, {
        "contributor" : "vladislav.shishov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 2
      }, {
        "contributor" : "mikhail.kuznetsov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 2
      } ]
    }, {
      "extension" : "yaml",
      "commitsCount" : 76,
      "committers" : [ "arun@arun.blog", "eugene.nizienko@jetbrains.com", "vladislav.shishov@jetbrains.com", "mikhail.kuznetsov@jetbrains.com", "jakub.chrzanowski@jetbrains.com", "nizienko@outlook.com" ],
      "filesCount" : 7,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "jakub.chrzanowski@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 3
      }, {
        "contributor" : "nizienko@outlook.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "eugene.nizienko@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 52
      }, {
        "contributor" : "vladislav.shishov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 17
      }, {
        "contributor" : "arun@arun.blog",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "mikhail.kuznetsov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 2
      } ]
    }, {
      "extension" : "gradle",
      "commitsCount" : 47,
      "committers" : [ "evgenii.novozhilov@jetbrains.com", "eugene.nizienko@gmail.com", "eugene.nizienko@jetbrains.com", "vladislav.shishov@jetbrains.com", "jgafner@gmail.com" ],
      "filesCount" : 1,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "jgafner@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "eugene.nizienko@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "eugene.nizienko@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 41
      }, {
        "contributor" : "evgenii.novozhilov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "vladislav.shishov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 3
      } ]
    }, {
      "extension" : "properties",
      "commitsCount" : 36,
      "committers" : [ "evgenii.novozhilov@jetbrains.com", "eugene.nizienko@gmail.com", "eugene.nizienko@jetbrains.com", "vladislav.shishov@jetbrains.com", "jgafner@gmail.com" ],
      "filesCount" : 2,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "jgafner@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "eugene.nizienko@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "eugene.nizienko@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 31
      }, {
        "contributor" : "evgenii.novozhilov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 2
      }, {
        "contributor" : "vladislav.shishov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      } ]
    }, {
      "extension" : "java",
      "commitsCount" : 51,
      "committers" : [ "eugene.nizienko@gmail.com", "eugene.nizienko@jetbrains.com", "mikhail.kuznetsov@jetbrains.com", "vladislav.shishov@jetbrains.com" ],
      "filesCount" : 7,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "eugene.nizienko@gmail.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 2
      }, {
        "contributor" : "eugene.nizienko@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 44
      }, {
        "contributor" : "vladislav.shishov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      }, {
        "contributor" : "mikhail.kuznetsov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 4
      } ]
    }, {
      "extension" : "api",
      "commitsCount" : 12,
      "committers" : [ "eugene.nizienko@jetbrains.com", "vladislav.shishov@jetbrains.com", "mikhail.kuznetsov@jetbrains.com" ],
      "filesCount" : 1,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "eugene.nizienko@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 8
      }, {
        "contributor" : "vladislav.shishov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 3
      }, {
        "contributor" : "mikhail.kuznetsov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      } ]
    }, {
      "extension" : "xml",
      "commitsCount" : 14,
      "committers" : [ "eugene.nizienko@jetbrains.com", "vladislav.shishov@jetbrains.com" ],
      "filesCount" : 9,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "eugene.nizienko@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 13
      }, {
        "contributor" : "vladislav.shishov@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      } ]
    }, {
      "extension" : "",
      "commitsCount" : 4,
      "committers" : [ "eugene.nizienko@jetbrains.com" ],
      "filesCount" : 2,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "eugene.nizienko@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 4
      } ]
    }, {
      "extension" : "css",
      "commitsCount" : 1,
      "committers" : [ "eugene.nizienko@jetbrains.com" ],
      "filesCount" : 1,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "eugene.nizienko@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      } ]
    }, {
      "extension" : "gif",
      "commitsCount" : 1,
      "committers" : [ "eugene.nizienko@jetbrains.com" ],
      "filesCount" : 1,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "eugene.nizienko@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      } ]
    }, {
      "extension" : "png",
      "commitsCount" : 1,
      "committers" : [ "eugene.nizienko@jetbrains.com" ],
      "filesCount" : 1,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "eugene.nizienko@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      } ]
    }, {
      "extension" : "js",
      "commitsCount" : 7,
      "committers" : [ "eugene.nizienko@jetbrains.com" ],
      "filesCount" : 3,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "eugene.nizienko@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 7
      } ]
    }, {
      "extension" : "bat",
      "commitsCount" : 2,
      "committers" : [ "eugene.nizienko@jetbrains.com" ],
      "filesCount" : 1,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "eugene.nizienko@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 2
      } ]
    }, {
      "extension" : "kt~head",
      "commitsCount" : 1,
      "committers" : [ "eugene.nizienko@jetbrains.com" ],
      "filesCount" : 1,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "eugene.nizienko@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 1
      } ]
    }, {
      "extension" : "jar",
      "commitsCount" : 3,
      "committers" : [ "eugene.nizienko@jetbrains.com" ],
      "filesCount" : 1,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "eugene.nizienko@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 3
      } ]
    }, {
      "extension" : "ts",
      "commitsCount" : 3,
      "committers" : [ "eugene.nizienko@jetbrains.com" ],
      "filesCount" : 1,
      "commitsCount30Days" : 0,
      "committers30Days" : [ ],
      "filesCount30Days" : 0,
      "commitsCount90Days" : 0,
      "committers90Days" : [ ],
      "filesCount90Days" : 0,
      "contributorPerExtensionStats" : [ {
        "contributor" : "eugene.nizienko@jetbrains.com",
        "fileUpdates30Days" : 0,
        "fileUpdates90Days" : 0,
        "fileUpdates" : 3
      } ]
    } ]
  },
  "numberOfExcludedFiles" : 18,
  "excludedExtensions" : {
    "" : 2,
    "txt" : 1,
    "gif" : 1,
    "gitignore" : 1,
    "png" : 3,
    "jar" : 1,
    "api" : 1,
    "properties" : 1,
    "yaml" : 7
  },
  "analysisStartTimeMs" : 1768756596371,
  "maxLinesOfCode" : 9242,
  "maxFileCount" : 134
}