!7 sclass CandidateMsg { S symbol, text; int secs; // seconds after last post Bool bot; } p-tt { ai_alternativeSmartBot(); temp ActualThoughtSpace ts = newThoughtSpace(); new LL candidates; for (S prefix : ll("Chat line", "Smart bot's chat line")) for (L t : ai_all_threeInARow(prefix)) { L l = makeCandidateMsgs(t); continue unless isFalse(l.get(0).bot) && isTrue(l.get(1).bot) && isFalse(l.get(2).bot); candidates.add(l); for (CandidateMsg m : l) print((isTrue(m.bot) ? "[B]" : isFalse(m.bot) ? "[U]" : "[?]") + " " + m.symbol + ": " + quoteBorderless(m.text) + " [" + m.secs + " s]"); print(); } print(n2(candidates, "candidate")); } static L makeCandidateMsgs(L t) { new L l; for (S s : t) { new CandidateMsg m; m.symbol = s; m.text = ai_chatLineText(s); m.secs = (int) ai_chatLineTimeDiff(s)/1000; m.bot = ai_chatLineSentByBot(s); l.add(m); } ret l; }