count = readMolfileInt(line, 6);
for (int i = 0, st = 10; i < count && st + 7 <= length; i++, st += 8) {
sgroup = ensureSgroup(sgroups,
readMolfileInt(line, st));
if (mode == Mode.STRICT && sgroup.getType() != SgroupType.CtabCopolymer)
sgroup = ensureSgroup(sgroups, readMolfileInt(line, 7));
count = readMolfileInt(line, 10);
for (int i = 0, st = 14; i < count && st + 3 <= length; i++, st += 4) {
sgroup = ensureSgroup(sgroups, readMolfileInt(line, 7));
count = readMolfileInt(line, 10);
for (int i = 0, st = 14; i < count && st + 3 <= length; i++, st += 4) {
count = readMolfileInt(line, 6);
for (int i = 0, st = 10; i < count && st + 6 <= length; i++, st += 8) {
sgroup = ensureSgroup(sgroups, readMolfileInt(line, st));
sgroup.addParent(ensureSgroup(sgroups, readMolfileInt(line, st+4)));
count = readMolfileInt(line, 6);
for (int i = 0, st = 10; i < count && st + 6 <= length; i++, st += 8) {
sgroup = ensureSgroup(sgroups,
readMolfileInt(line, st));
String con = line.substring(st + 4, Math.min(length, st + 7)).trim();
sgroup = ensureSgroup(sgroups, readMolfileInt(line, 7));
count = readMolfileInt(line, 10);
assert count == 4;