{
  "title" : "Duplication",
  "timestamp" : "2026-04-18 13:03:53",
  "duplicates" : [ {
    "blockSize" : 30,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 393,
      "endLine" : 433,
      "cleanedStartLine" : 268,
      "cleanedEndLine" : 297
    }, {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 584,
      "endLine" : 624,
      "cleanedStartLine" : 399,
      "cleanedEndLine" : 428
    } ]
  }, {
    "blockSize" : 22,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 504,
      "endLine" : 542,
      "cleanedStartLine" : 347,
      "cleanedEndLine" : 368
    }, {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 923,
      "endLine" : 955,
      "cleanedStartLine" : 653,
      "cleanedEndLine" : 674
    } ]
  }, {
    "blockSize" : 22,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 224,
      "endLine" : 255,
      "cleanedStartLine" : 170,
      "cleanedEndLine" : 191
    }, {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 382,
      "endLine" : 413,
      "cleanedStartLine" : 268,
      "cleanedEndLine" : 289
    } ]
  }, {
    "blockSize" : 21,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 395,
      "endLine" : 423,
      "cleanedStartLine" : 269,
      "cleanedEndLine" : 289
    }, {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 1004,
      "endLine" : 1028,
      "cleanedStartLine" : 709,
      "cleanedEndLine" : 729
    } ]
  }, {
    "blockSize" : 21,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 586,
      "endLine" : 614,
      "cleanedStartLine" : 400,
      "cleanedEndLine" : 420
    }, {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 1004,
      "endLine" : 1028,
      "cleanedStartLine" : 709,
      "cleanedEndLine" : 729
    } ]
  }, {
    "blockSize" : 19,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "optimizer.py",
        "extension" : "py",
        "linesOfCode" : 767,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 758,
      "startLine" : 33,
      "endLine" : 62,
      "cleanedStartLine" : 15,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "placement.py",
        "extension" : "py",
        "linesOfCode" : 129,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 125,
      "startLine" : 24,
      "endLine" : 53,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 29
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scripts/jobtrace_to_yugong.py",
        "extension" : "py",
        "linesOfCode" : 70,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 64,
      "startLine" : 21,
      "endLine" : 37,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 23
    }, {
      "file" : {
        "relativePath" : "scripts/jobtrace_to_yugong_agg.py",
        "extension" : "py",
        "linesOfCode" : 46,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 15,
      "endLine" : 31,
      "cleanedStartLine" : 8,
      "cleanedEndLine" : 22
    } ]
  }, {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 323,
      "endLine" : 347,
      "cleanedStartLine" : 216,
      "cleanedEndLine" : 230
    }, {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 486,
      "endLine" : 510,
      "cleanedStartLine" : 336,
      "cleanedEndLine" : 350
    } ]
  }, {
    "blockSize" : 14,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 323,
      "endLine" : 337,
      "cleanedStartLine" : 222,
      "cleanedEndLine" : 235
    }, {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 538,
      "endLine" : 551,
      "cleanedStartLine" : 366,
      "cleanedEndLine" : 379
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 645,
      "endLine" : 661,
      "cleanedStartLine" : 444,
      "cleanedEndLine" : 456
    }, {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 1051,
      "endLine" : 1065,
      "cleanedStartLine" : 747,
      "cleanedEndLine" : 759
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 456,
      "endLine" : 470,
      "cleanedStartLine" : 313,
      "cleanedEndLine" : 325
    }, {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 648,
      "endLine" : 662,
      "cleanedStartLine" : 445,
      "cleanedEndLine" : 457
    } ]
  }, {
    "blockSize" : 12,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 456,
      "endLine" : 469,
      "cleanedStartLine" : 313,
      "cleanedEndLine" : 324
    }, {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 1054,
      "endLine" : 1065,
      "cleanedStartLine" : 748,
      "cleanedEndLine" : 759
    } ]
  }, {
    "blockSize" : 11,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scripts/anonymize.py",
        "extension" : "py",
        "linesOfCode" : 180,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 176,
      "startLine" : 138,
      "endLine" : 148,
      "cleanedStartLine" : 96,
      "cleanedEndLine" : 106
    }, {
      "file" : {
        "relativePath" : "scripts/anonymize.py",
        "extension" : "py",
        "linesOfCode" : 180,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 176,
      "startLine" : 179,
      "endLine" : 189,
      "cleanedStartLine" : 123,
      "cleanedEndLine" : 133
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 449,
      "endLine" : 460,
      "cleanedStartLine" : 307,
      "cleanedEndLine" : 316
    }, {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 534,
      "endLine" : 545,
      "cleanedStartLine" : 364,
      "cleanedEndLine" : 373
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 394,
      "endLine" : 405,
      "cleanedStartLine" : 274,
      "cleanedEndLine" : 283
    }, {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 585,
      "endLine" : 595,
      "cleanedStartLine" : 406,
      "cleanedEndLine" : 415
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scripts/jobtrace_to_weekly_agg.py",
        "extension" : "py",
        "linesOfCode" : 51,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 11,
      "endLine" : 22,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "scripts/jobtrace_to_yugong_agg.py",
        "extension" : "py",
        "linesOfCode" : 46,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 10,
      "endLine" : 21,
      "cleanedStartLine" : 4,
      "cleanedEndLine" : 13
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 236,
      "endLine" : 247,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 185
    }, {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 585,
      "endLine" : 595,
      "cleanedStartLine" : 406,
      "cleanedEndLine" : 415
    } ]
  }, {
    "blockSize" : 10,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 363,
      "endLine" : 374,
      "cleanedStartLine" : 242,
      "cleanedEndLine" : 251
    }, {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 976,
      "endLine" : 987,
      "cleanedStartLine" : 687,
      "cleanedEndLine" : 696
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scripts/anonymize.py",
        "extension" : "py",
        "linesOfCode" : 180,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 176,
      "startLine" : 105,
      "endLine" : 113,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 81
    }, {
      "file" : {
        "relativePath" : "scripts/anonymize.py",
        "extension" : "py",
        "linesOfCode" : 180,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 176,
      "startLine" : 141,
      "endLine" : 149,
      "cleanedStartLine" : 99,
      "cleanedEndLine" : 107
    } ]
  }, {
    "blockSize" : 9,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 483,
      "endLine" : 491,
      "cleanedStartLine" : 332,
      "cleanedEndLine" : 340
    }, {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 546,
      "endLine" : 554,
      "cleanedStartLine" : 374,
      "cleanedEndLine" : 382
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 435,
      "endLine" : 447,
      "cleanedStartLine" : 298,
      "cleanedEndLine" : 305
    }, {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 520,
      "endLine" : 532,
      "cleanedStartLine" : 355,
      "cleanedEndLine" : 362
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scripts/anonymize.py",
        "extension" : "py",
        "linesOfCode" : 180,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 176,
      "startLine" : 105,
      "endLine" : 112,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 80
    }, {
      "file" : {
        "relativePath" : "scripts/anonymize.py",
        "extension" : "py",
        "linesOfCode" : 180,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 176,
      "startLine" : 182,
      "endLine" : 189,
      "cleanedStartLine" : 126,
      "cleanedEndLine" : 133
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 440,
      "endLine" : 447,
      "cleanedStartLine" : 301,
      "cleanedEndLine" : 308
    }, {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 632,
      "endLine" : 639,
      "cleanedStartLine" : 433,
      "cleanedEndLine" : 440
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 394,
      "endLine" : 403,
      "cleanedStartLine" : 274,
      "cleanedEndLine" : 281
    }, {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 474,
      "endLine" : 483,
      "cleanedStartLine" : 325,
      "cleanedEndLine" : 332
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 323,
      "endLine" : 330,
      "cleanedStartLine" : 222,
      "cleanedEndLine" : 229
    }, {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 453,
      "endLine" : 460,
      "cleanedStartLine" : 309,
      "cleanedEndLine" : 316
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 570,
      "endLine" : 578,
      "cleanedStartLine" : 388,
      "cleanedEndLine" : 395
    }, {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 993,
      "endLine" : 1001,
      "cleanedStartLine" : 701,
      "cleanedEndLine" : 708
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 236,
      "endLine" : 245,
      "cleanedStartLine" : 176,
      "cleanedEndLine" : 183
    }, {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 474,
      "endLine" : 483,
      "cleanedStartLine" : 325,
      "cleanedEndLine" : 332
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 474,
      "endLine" : 483,
      "cleanedStartLine" : 325,
      "cleanedEndLine" : 332
    }, {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 585,
      "endLine" : 593,
      "cleanedStartLine" : 406,
      "cleanedEndLine" : 413
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 633,
      "endLine" : 639,
      "cleanedStartLine" : 434,
      "cleanedEndLine" : 440
    }, {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 1040,
      "endLine" : 1046,
      "cleanedStartLine" : 738,
      "cleanedEndLine" : 744
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scripts/evaluation.py",
        "extension" : "py",
        "linesOfCode" : 106,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 104,
      "startLine" : 47,
      "endLine" : 54,
      "cleanedStartLine" : 24,
      "cleanedEndLine" : 30
    }, {
      "file" : {
        "relativePath" : "scripts/evaluation.py",
        "extension" : "py",
        "linesOfCode" : 106,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 104,
      "startLine" : 79,
      "endLine" : 86,
      "cleanedStartLine" : 46,
      "cleanedEndLine" : 52
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    }, {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 96,
      "endLine" : 102,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 79
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scripts/anonymize.py",
        "extension" : "py",
        "linesOfCode" : 180,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 176,
      "startLine" : 70,
      "endLine" : 76,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 55
    }, {
      "file" : {
        "relativePath" : "scripts/anonymize.py",
        "extension" : "py",
        "linesOfCode" : 180,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 176,
      "startLine" : 184,
      "endLine" : 190,
      "cleanedStartLine" : 128,
      "cleanedEndLine" : 134
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 441,
      "endLine" : 447,
      "cleanedStartLine" : 302,
      "cleanedEndLine" : 308
    }, {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 1040,
      "endLine" : 1046,
      "cleanedStartLine" : 738,
      "cleanedEndLine" : 744
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 369,
      "endLine" : 375,
      "cleanedStartLine" : 246,
      "cleanedEndLine" : 252
    }, {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 559,
      "endLine" : 565,
      "cleanedStartLine" : 378,
      "cleanedEndLine" : 384
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 500,
      "endLine" : 507,
      "cleanedStartLine" : 347,
      "cleanedEndLine" : 353
    }, {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 605,
      "endLine" : 612,
      "cleanedStartLine" : 422,
      "cleanedEndLine" : 428
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "optimizer.py",
        "extension" : "py",
        "linesOfCode" : 767,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 758,
      "startLine" : 916,
      "endLine" : 922,
      "cleanedStartLine" : 611,
      "cleanedEndLine" : 617
    }, {
      "file" : {
        "relativePath" : "optimizer.py",
        "extension" : "py",
        "linesOfCode" : 767,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 758,
      "startLine" : 967,
      "endLine" : 973,
      "cleanedStartLine" : 647,
      "cleanedEndLine" : 653
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 47,
      "endLine" : 53,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 96,
      "endLine" : 102,
      "cleanedStartLine" : 73,
      "cleanedEndLine" : 79
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 47,
      "endLine" : 53,
      "cleanedStartLine" : 27,
      "cleanedEndLine" : 33
    }, {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 82,
      "endLine" : 88,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 65
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "optimizer.py",
        "extension" : "py",
        "linesOfCode" : 767,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 758,
      "startLine" : 916,
      "endLine" : 921,
      "cleanedStartLine" : 611,
      "cleanedEndLine" : 616
    }, {
      "file" : {
        "relativePath" : "optimizer.py",
        "extension" : "py",
        "linesOfCode" : 767,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 758,
      "startLine" : 1036,
      "endLine" : 1041,
      "cleanedStartLine" : 696,
      "cleanedEndLine" : 701
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scripts/anonymize.py",
        "extension" : "py",
        "linesOfCode" : 180,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 176,
      "startLine" : 117,
      "endLine" : 124,
      "cleanedStartLine" : 83,
      "cleanedEndLine" : 88
    }, {
      "file" : {
        "relativePath" : "scripts/anonymize.py",
        "extension" : "py",
        "linesOfCode" : 180,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 176,
      "startLine" : 153,
      "endLine" : 161,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 114
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 492,
      "endLine" : 497,
      "cleanedStartLine" : 341,
      "cleanedEndLine" : 346
    }, {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 594,
      "endLine" : 599,
      "cleanedStartLine" : 414,
      "cleanedEndLine" : 419
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 214,
      "endLine" : 220,
      "cleanedStartLine" : 163,
      "cleanedEndLine" : 168
    }, {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 372,
      "endLine" : 378,
      "cleanedStartLine" : 261,
      "cleanedEndLine" : 266
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "optimizer.py",
        "extension" : "py",
        "linesOfCode" : 767,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 758,
      "startLine" : 967,
      "endLine" : 972,
      "cleanedStartLine" : 647,
      "cleanedEndLine" : 652
    }, {
      "file" : {
        "relativePath" : "optimizer.py",
        "extension" : "py",
        "linesOfCode" : 767,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 758,
      "startLine" : 1046,
      "endLine" : 1051,
      "cleanedStartLine" : 705,
      "cleanedEndLine" : 710
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scripts/anonymize.py",
        "extension" : "py",
        "linesOfCode" : 180,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 176,
      "startLine" : 117,
      "endLine" : 124,
      "cleanedStartLine" : 83,
      "cleanedEndLine" : 88
    }, {
      "file" : {
        "relativePath" : "scripts/anonymize.py",
        "extension" : "py",
        "linesOfCode" : 180,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 176,
      "startLine" : 196,
      "endLine" : 204,
      "cleanedStartLine" : 137,
      "cleanedEndLine" : 142
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scripts/anonymize.py",
        "extension" : "py",
        "linesOfCode" : 180,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 176,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 54
    }, {
      "file" : {
        "relativePath" : "scripts/anonymize.py",
        "extension" : "py",
        "linesOfCode" : 180,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 176,
      "startLine" : 107,
      "endLine" : 112,
      "cleanedStartLine" : 75,
      "cleanedEndLine" : 80
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 332,
      "endLine" : 337,
      "cleanedStartLine" : 230,
      "cleanedEndLine" : 235
    }, {
      "file" : {
        "relativePath" : "tests.py",
        "extension" : "py",
        "linesOfCode" : 451,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 441,
      "startLine" : 483,
      "endLine" : 488,
      "cleanedStartLine" : 332,
      "cleanedEndLine" : 337
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scripts/jobtrace_to_yugong.py",
        "extension" : "py",
        "linesOfCode" : 70,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 64,
      "startLine" : 41,
      "endLine" : 46,
      "cleanedStartLine" : 26,
      "cleanedEndLine" : 31
    }, {
      "file" : {
        "relativePath" : "scripts/jobtrace_to_yugong_agg.py",
        "extension" : "py",
        "linesOfCode" : 46,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 33,
      "endLine" : 38,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 28
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 559,
      "endLine" : 564,
      "cleanedStartLine" : 378,
      "cleanedEndLine" : 383
    }, {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 982,
      "endLine" : 987,
      "cleanedStartLine" : 691,
      "cleanedEndLine" : 696
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 386,
      "endLine" : 391,
      "cleanedStartLine" : 262,
      "cleanedEndLine" : 267
    }, {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 573,
      "endLine" : 578,
      "cleanedStartLine" : 390,
      "cleanedEndLine" : 395
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "optimizer.py",
        "extension" : "py",
        "linesOfCode" : 767,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 758,
      "startLine" : 916,
      "endLine" : 921,
      "cleanedStartLine" : 611,
      "cleanedEndLine" : 616
    }, {
      "file" : {
        "relativePath" : "optimizer.py",
        "extension" : "py",
        "linesOfCode" : 767,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 758,
      "startLine" : 1046,
      "endLine" : 1051,
      "cleanedStartLine" : 705,
      "cleanedEndLine" : 710
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 386,
      "endLine" : 391,
      "cleanedStartLine" : 262,
      "cleanedEndLine" : 267
    }, {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 996,
      "endLine" : 1001,
      "cleanedStartLine" : 703,
      "cleanedEndLine" : 708
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "optimizer.py",
        "extension" : "py",
        "linesOfCode" : 767,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 758,
      "startLine" : 967,
      "endLine" : 972,
      "cleanedStartLine" : 647,
      "cleanedEndLine" : 652
    }, {
      "file" : {
        "relativePath" : "optimizer.py",
        "extension" : "py",
        "linesOfCode" : 767,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 758,
      "startLine" : 1036,
      "endLine" : 1041,
      "cleanedStartLine" : 696,
      "cleanedEndLine" : 701
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scripts/anonymize.py",
        "extension" : "py",
        "linesOfCode" : 180,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 176,
      "startLine" : 153,
      "endLine" : 161,
      "cleanedStartLine" : 109,
      "cleanedEndLine" : 114
    }, {
      "file" : {
        "relativePath" : "scripts/anonymize.py",
        "extension" : "py",
        "linesOfCode" : 180,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 176,
      "startLine" : 196,
      "endLine" : 204,
      "cleanedStartLine" : 137,
      "cleanedEndLine" : 142
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scripts/figs.py",
        "extension" : "py",
        "linesOfCode" : 778,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 770,
      "startLine" : 284,
      "endLine" : 290,
      "cleanedStartLine" : 191,
      "cleanedEndLine" : 196
    }, {
      "file" : {
        "relativePath" : "scripts/figs.py",
        "extension" : "py",
        "linesOfCode" : 778,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 770,
      "startLine" : 331,
      "endLine" : 336,
      "cleanedStartLine" : 227,
      "cleanedEndLine" : 232
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scripts/anonymize.py",
        "extension" : "py",
        "linesOfCode" : 180,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 176,
      "startLine" : 70,
      "endLine" : 75,
      "cleanedStartLine" : 49,
      "cleanedEndLine" : 54
    }, {
      "file" : {
        "relativePath" : "scripts/anonymize.py",
        "extension" : "py",
        "linesOfCode" : 180,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 176,
      "startLine" : 143,
      "endLine" : 148,
      "cleanedStartLine" : 101,
      "cleanedEndLine" : 106
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scripts/jobtrace_to_weekly_agg.py",
        "extension" : "py",
        "linesOfCode" : 51,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 48,
      "startLine" : 16,
      "endLine" : 22,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    }, {
      "file" : {
        "relativePath" : "scripts/jobtrace_to_yugong.py",
        "extension" : "py",
        "linesOfCode" : 70,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 64,
      "startLine" : 21,
      "endLine" : 27,
      "cleanedStartLine" : 9,
      "cleanedEndLine" : 14
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 430,
      "endLine" : 438,
      "cleanedStartLine" : 294,
      "cleanedEndLine" : 299
    }, {
      "file" : {
        "relativePath" : "scheduler.py",
        "extension" : "py",
        "linesOfCode" : 781,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 767,
      "startLine" : 1030,
      "endLine" : 1037,
      "cleanedStartLine" : 730,
      "cleanedEndLine" : 735
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "optimizer.py",
        "extension" : "py",
        "linesOfCode" : 767,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 758,
      "startLine" : 723,
      "endLine" : 728,
      "cleanedStartLine" : 476,
      "cleanedEndLine" : 481
    }, {
      "file" : {
        "relativePath" : "optimizer.py",
        "extension" : "py",
        "linesOfCode" : 767,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 758,
      "startLine" : 744,
      "endLine" : 751,
      "cleanedStartLine" : 491,
      "cleanedEndLine" : 496
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "optimizer.py",
        "extension" : "py",
        "linesOfCode" : 767,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 758,
      "startLine" : 685,
      "endLine" : 690,
      "cleanedStartLine" : 452,
      "cleanedEndLine" : 457
    }, {
      "file" : {
        "relativePath" : "optimizer.py",
        "extension" : "py",
        "linesOfCode" : 767,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 758,
      "startLine" : 721,
      "endLine" : 727,
      "cleanedStartLine" : 475,
      "cleanedEndLine" : 480
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "optimizer.py",
        "extension" : "py",
        "linesOfCode" : 767,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 758,
      "startLine" : 1036,
      "endLine" : 1041,
      "cleanedStartLine" : 696,
      "cleanedEndLine" : 701
    }, {
      "file" : {
        "relativePath" : "optimizer.py",
        "extension" : "py",
        "linesOfCode" : 767,
        "components" : [ "primary::ROOT" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 758,
      "startLine" : 1046,
      "endLine" : 1051,
      "cleanedStartLine" : 705,
      "cleanedEndLine" : 710
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "scripts/jobtrace_to_yugong.py",
        "extension" : "py",
        "linesOfCode" : 70,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 64,
      "startLine" : 85,
      "endLine" : 91,
      "cleanedStartLine" : 59,
      "cleanedEndLine" : 64
    }, {
      "file" : {
        "relativePath" : "scripts/jobtrace_to_yugong_agg.py",
        "extension" : "py",
        "linesOfCode" : 46,
        "components" : [ "primary::scripts" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 43,
      "startLine" : 53,
      "endLine" : 59,
      "cleanedStartLine" : 38,
      "cleanedEndLine" : 43
    } ]
  } ],
  "overallDuplication" : null
}