diff --git a/data/annex_c_third_place.json b/data/annex_c_third_place.json new file mode 100644 index 0000000..5ece4bf --- /dev/null +++ b/data/annex_c_third_place.json @@ -0,0 +1,4965 @@ +{ + "_comment": "FIFA 2026 World Cup Annex C combination table for the eight best third-placed teams in the Round of 32. Key = the eight group letters whose third-placed team qualifies, sorted and concatenated (e.g. 'BDEFIJKL'). Value = mapping of group-winner slot label (1A/1B/1D/1E/1G/1I/1K/1L) -> the group letter whose third-placed team plays that winner. Source: Wikipedia 'Template:2026 FIFA World Cup third-place table' reproducing Annex C of the FIFA regulations; all 495 combinations.", + "_slot_order": [ + "1A", + "1B", + "1D", + "1E", + "1G", + "1I", + "1K", + "1L" + ], + "combinations": { + "ABCDEFGH": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "D", + "1L": "E" + }, + "ABCDEFGI": { + "1A": "C", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "E", + "1L": "I" + }, + "ABCDEFGJ": { + "1A": "C", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "E", + "1L": "J" + }, + "ABCDEFGK": { + "1A": "C", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "E", + "1L": "K" + }, + "ABCDEFGL": { + "1A": "C", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "E" + }, + "ABCDEFHI": { + "1A": "H", + "1B": "E", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "D", + "1L": "I" + }, + "ABCDEFHJ": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "D", + "1L": "E" + }, + "ABCDEFHK": { + "1A": "H", + "1B": "E", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "D", + "1L": "K" + }, + "ABCDEFHL": { + "1A": "H", + "1B": "F", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "E" + }, + "ABCDEFIJ": { + "1A": "C", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "E", + "1L": "I" + }, + "ABCDEFIK": { + "1A": "C", + "1B": "E", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "ABCDEFIL": { + "1A": "C", + "1B": "E", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "ABCDEFJK": { + "1A": "C", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "E", + "1L": "K" + }, + "ABCDEFJL": { + "1A": "C", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "E" + }, + "ABCDEFKL": { + "1A": "C", + "1B": "E", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ABCDEGHI": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "E", + "1L": "I" + }, + "ABCDEGHJ": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "E", + "1L": "J" + }, + "ABCDEGHK": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "E", + "1L": "K" + }, + "ABCDEGHL": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "E" + }, + "ABCDEGIJ": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "I", + "1L": "J" + }, + "ABCDEGIK": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "I", + "1L": "K" + }, + "ABCDEGIL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "I" + }, + "ABCDEGJK": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "J", + "1L": "K" + }, + "ABCDEGJL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "J" + }, + "ABCDEGKL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "ABCDEHIJ": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "E", + "1L": "I" + }, + "ABCDEHIK": { + "1A": "H", + "1B": "E", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "I", + "1L": "K" + }, + "ABCDEHIL": { + "1A": "H", + "1B": "E", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "I" + }, + "ABCDEHJK": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "E", + "1L": "K" + }, + "ABCDEHJL": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "E" + }, + "ABCDEHKL": { + "1A": "H", + "1B": "E", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "ABCDEIJK": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "I", + "1L": "K" + }, + "ABCDEIJL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "I" + }, + "ABCDEIKL": { + "1A": "E", + "1B": "I", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "ABCDEJKL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "ABCDFGHI": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "D", + "1L": "I" + }, + "ABCDFGHJ": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "D", + "1L": "J" + }, + "ABCDFGHK": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "D", + "1L": "K" + }, + "ABCDFGHL": { + "1A": "C", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "H" + }, + "ABCDFGIJ": { + "1A": "C", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "I", + "1L": "J" + }, + "ABCDFGIK": { + "1A": "C", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "ABCDFGIL": { + "1A": "C", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "ABCDFGJK": { + "1A": "C", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "J", + "1L": "K" + }, + "ABCDFGJL": { + "1A": "C", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "J" + }, + "ABCDFGKL": { + "1A": "C", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ABCDFHIJ": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "D", + "1L": "I" + }, + "ABCDFHIK": { + "1A": "H", + "1B": "F", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "I", + "1L": "K" + }, + "ABCDFHIL": { + "1A": "H", + "1B": "F", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "I" + }, + "ABCDFHJK": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "D", + "1L": "K" + }, + "ABCDFHJL": { + "1A": "C", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "H" + }, + "ABCDFHKL": { + "1A": "H", + "1B": "F", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "ABCDFIJK": { + "1A": "C", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "ABCDFIJL": { + "1A": "C", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "ABCDFIKL": { + "1A": "C", + "1B": "I", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ABCDFJKL": { + "1A": "C", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ABCDGHIJ": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "I", + "1L": "J" + }, + "ABCDGHIK": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "I", + "1L": "K" + }, + "ABCDGHIL": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "I" + }, + "ABCDGHJK": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "J", + "1L": "K" + }, + "ABCDGHJL": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "J" + }, + "ABCDGHKL": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "ABCDGIJK": { + "1A": "C", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "G", + "1K": "I", + "1L": "K" + }, + "ABCDGIJL": { + "1A": "C", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "G", + "1K": "L", + "1L": "I" + }, + "ABCDGIKL": { + "1A": "I", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "ABCDGJKL": { + "1A": "C", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "ABCDHIJK": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "I", + "1L": "K" + }, + "ABCDHIJL": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "I" + }, + "ABCDHIKL": { + "1A": "H", + "1B": "I", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "ABCDHJKL": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "ABCDIJKL": { + "1A": "I", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "ABCEFGHI": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "E", + "1L": "I" + }, + "ABCEFGHJ": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "E", + "1L": "J" + }, + "ABCEFGHK": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "E", + "1L": "K" + }, + "ABCEFGHL": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "E" + }, + "ABCEFGIJ": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "I", + "1L": "J" + }, + "ABCEFGIK": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "ABCEFGIL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "ABCEFGJK": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "J", + "1L": "K" + }, + "ABCEFGJL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "J" + }, + "ABCEFGKL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ABCEFHIJ": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "E", + "1L": "I" + }, + "ABCEFHIK": { + "1A": "H", + "1B": "E", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "ABCEFHIL": { + "1A": "H", + "1B": "E", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "ABCEFHJK": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "E", + "1L": "K" + }, + "ABCEFHJL": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "E" + }, + "ABCEFHKL": { + "1A": "H", + "1B": "E", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ABCEFIJK": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "ABCEFIJL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "ABCEFIKL": { + "1A": "E", + "1B": "I", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ABCEFJKL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ABCEGHIJ": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "G", + "1K": "E", + "1L": "I" + }, + "ABCEGHIK": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "H", + "1K": "I", + "1L": "K" + }, + "ABCEGHIL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "I" + }, + "ABCEGHJK": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "G", + "1K": "E", + "1L": "K" + }, + "ABCEGHJL": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "G", + "1K": "L", + "1L": "E" + }, + "ABCEGHKL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "K" + }, + "ABCEGIJK": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "G", + "1K": "I", + "1L": "K" + }, + "ABCEGIJL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "G", + "1K": "L", + "1L": "I" + }, + "ABCEGIKL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "A", + "1G": "I", + "1I": "C", + "1K": "L", + "1L": "K" + }, + "ABCEGJKL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "ABCEHIJK": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "H", + "1K": "I", + "1L": "K" + }, + "ABCEHIJL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "I" + }, + "ABCEHIKL": { + "1A": "E", + "1B": "I", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "K" + }, + "ABCEHJKL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "K" + }, + "ABCEIJKL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "A", + "1G": "I", + "1I": "C", + "1K": "L", + "1L": "K" + }, + "ABCFGHIJ": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "I", + "1L": "J" + }, + "ABCFGHIK": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "ABCFGHIL": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "ABCFGHJK": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "J", + "1L": "K" + }, + "ABCFGHJL": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "J" + }, + "ABCFGHKL": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ABCFGIJK": { + "1A": "C", + "1B": "J", + "1D": "B", + "1E": "F", + "1G": "A", + "1I": "G", + "1K": "I", + "1L": "K" + }, + "ABCFGIJL": { + "1A": "C", + "1B": "J", + "1D": "B", + "1E": "F", + "1G": "A", + "1I": "G", + "1K": "L", + "1L": "I" + }, + "ABCFGIKL": { + "1A": "I", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ABCFGJKL": { + "1A": "C", + "1B": "J", + "1D": "B", + "1E": "F", + "1G": "A", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "ABCFHIJK": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "ABCFHIJL": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "ABCFHIKL": { + "1A": "H", + "1B": "I", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ABCFHJKL": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ABCFIJKL": { + "1A": "I", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ABCGHIJK": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "G", + "1K": "I", + "1L": "K" + }, + "ABCGHIJL": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "G", + "1K": "L", + "1L": "I" + }, + "ABCGHIKL": { + "1A": "I", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "K" + }, + "ABCGHJKL": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "ABCGIJKL": { + "1A": "I", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "ABCHIJKL": { + "1A": "I", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "K" + }, + "ABDEFGHI": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "E", + "1L": "I" + }, + "ABDEFGHJ": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "E", + "1L": "J" + }, + "ABDEFGHK": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "E", + "1L": "K" + }, + "ABDEFGHL": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "E" + }, + "ABDEFGIJ": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "I", + "1L": "J" + }, + "ABDEFGIK": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "ABDEFGIL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "ABDEFGJK": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "J", + "1L": "K" + }, + "ABDEFGJL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "J" + }, + "ABDEFGKL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ABDEFHIJ": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "E", + "1L": "I" + }, + "ABDEFHIK": { + "1A": "H", + "1B": "E", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "ABDEFHIL": { + "1A": "H", + "1B": "E", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "ABDEFHJK": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "E", + "1L": "K" + }, + "ABDEFHJL": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "E" + }, + "ABDEFHKL": { + "1A": "H", + "1B": "E", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ABDEFIJK": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "ABDEFIJL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "ABDEFIKL": { + "1A": "E", + "1B": "I", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ABDEFJKL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ABDEGHIJ": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "G", + "1K": "E", + "1L": "I" + }, + "ABDEGHIK": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "H", + "1K": "I", + "1L": "K" + }, + "ABDEGHIL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "I" + }, + "ABDEGHJK": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "G", + "1K": "E", + "1L": "K" + }, + "ABDEGHJL": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "G", + "1K": "L", + "1L": "E" + }, + "ABDEGHKL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "K" + }, + "ABDEGIJK": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "G", + "1K": "I", + "1L": "K" + }, + "ABDEGIJL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "G", + "1K": "L", + "1L": "I" + }, + "ABDEGIKL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "A", + "1G": "I", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "ABDEGJKL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "ABDEHIJK": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "H", + "1K": "I", + "1L": "K" + }, + "ABDEHIJL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "I" + }, + "ABDEHIKL": { + "1A": "E", + "1B": "I", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "K" + }, + "ABDEHJKL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "K" + }, + "ABDEIJKL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "A", + "1G": "I", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "ABDFGHIJ": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "I", + "1L": "J" + }, + "ABDFGHIK": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "ABDFGHIL": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "ABDFGHJK": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "J", + "1L": "K" + }, + "ABDFGHJL": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "J" + }, + "ABDFGHKL": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ABDFGIJK": { + "1A": "F", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "G", + "1K": "I", + "1L": "K" + }, + "ABDFGIJL": { + "1A": "F", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "G", + "1K": "L", + "1L": "I" + }, + "ABDFGIKL": { + "1A": "I", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ABDFGJKL": { + "1A": "F", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "ABDFHIJK": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "ABDFHIJL": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "ABDFHIKL": { + "1A": "H", + "1B": "I", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ABDFHJKL": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ABDFIJKL": { + "1A": "I", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ABDGHIJK": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "G", + "1K": "I", + "1L": "K" + }, + "ABDGHIJL": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "G", + "1K": "L", + "1L": "I" + }, + "ABDGHIKL": { + "1A": "I", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "K" + }, + "ABDGHJKL": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "ABDGIJKL": { + "1A": "I", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "ABDHIJKL": { + "1A": "I", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "K" + }, + "ABEFGHIJ": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "F", + "1G": "A", + "1I": "G", + "1K": "E", + "1L": "I" + }, + "ABEFGHIK": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "F", + "1G": "A", + "1I": "H", + "1K": "I", + "1L": "K" + }, + "ABEFGHIL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "F", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "I" + }, + "ABEFGHJK": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "F", + "1G": "A", + "1I": "G", + "1K": "E", + "1L": "K" + }, + "ABEFGHJL": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "F", + "1G": "A", + "1I": "G", + "1K": "L", + "1L": "E" + }, + "ABEFGHKL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "F", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "K" + }, + "ABEFGIJK": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "F", + "1G": "A", + "1I": "G", + "1K": "I", + "1L": "K" + }, + "ABEFGIJL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "F", + "1G": "A", + "1I": "G", + "1K": "L", + "1L": "I" + }, + "ABEFGIKL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "A", + "1G": "I", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ABEFGJKL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "F", + "1G": "A", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "ABEFHIJK": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "F", + "1G": "A", + "1I": "H", + "1K": "I", + "1L": "K" + }, + "ABEFHIJL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "F", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "I" + }, + "ABEFHIKL": { + "1A": "E", + "1B": "I", + "1D": "B", + "1E": "F", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "K" + }, + "ABEFHJKL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "F", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "K" + }, + "ABEFIJKL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "A", + "1G": "I", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ABEGHIJK": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "A", + "1G": "H", + "1I": "G", + "1K": "I", + "1L": "K" + }, + "ABEGHIJL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "A", + "1G": "H", + "1I": "G", + "1K": "L", + "1L": "I" + }, + "ABEGHIKL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "A", + "1G": "I", + "1I": "H", + "1K": "L", + "1L": "K" + }, + "ABEGHJKL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "A", + "1G": "H", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "ABEGIJKL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "A", + "1G": "I", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "ABEHIJKL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "A", + "1G": "I", + "1I": "H", + "1K": "L", + "1L": "K" + }, + "ABFGHIJK": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "F", + "1G": "A", + "1I": "G", + "1K": "I", + "1L": "K" + }, + "ABFGHIJL": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "F", + "1G": "A", + "1I": "G", + "1K": "L", + "1L": "I" + }, + "ABFGHIKL": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "A", + "1G": "I", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ABFGHJKL": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "F", + "1G": "A", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "ABFGIJKL": { + "1A": "I", + "1B": "J", + "1D": "B", + "1E": "F", + "1G": "A", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "ABFHIJKL": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "A", + "1G": "I", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ABGHIJKL": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "A", + "1G": "I", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "ACDEFGHI": { + "1A": "H", + "1B": "G", + "1D": "E", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "D", + "1L": "I" + }, + "ACDEFGHJ": { + "1A": "H", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "D", + "1L": "E" + }, + "ACDEFGHK": { + "1A": "H", + "1B": "G", + "1D": "E", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "D", + "1L": "K" + }, + "ACDEFGHL": { + "1A": "H", + "1B": "G", + "1D": "F", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "E" + }, + "ACDEFGIJ": { + "1A": "C", + "1B": "G", + "1D": "J", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "E", + "1L": "I" + }, + "ACDEFGIK": { + "1A": "C", + "1B": "G", + "1D": "E", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "ACDEFGIL": { + "1A": "C", + "1B": "G", + "1D": "E", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "ACDEFGJK": { + "1A": "C", + "1B": "G", + "1D": "J", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "E", + "1L": "K" + }, + "ACDEFGJL": { + "1A": "C", + "1B": "G", + "1D": "J", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "E" + }, + "ACDEFGKL": { + "1A": "C", + "1B": "G", + "1D": "E", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ACDEFHIJ": { + "1A": "H", + "1B": "J", + "1D": "E", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "D", + "1L": "I" + }, + "ACDEFHIK": { + "1A": "H", + "1B": "E", + "1D": "F", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "I", + "1L": "K" + }, + "ACDEFHIL": { + "1A": "H", + "1B": "E", + "1D": "F", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "I" + }, + "ACDEFHJK": { + "1A": "H", + "1B": "J", + "1D": "E", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "D", + "1L": "K" + }, + "ACDEFHJL": { + "1A": "H", + "1B": "J", + "1D": "F", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "E" + }, + "ACDEFHKL": { + "1A": "H", + "1B": "E", + "1D": "F", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "ACDEFIJK": { + "1A": "C", + "1B": "J", + "1D": "E", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "ACDEFIJL": { + "1A": "C", + "1B": "J", + "1D": "E", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "ACDEFIKL": { + "1A": "C", + "1B": "E", + "1D": "I", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ACDEFJKL": { + "1A": "C", + "1B": "J", + "1D": "E", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ACDEGHIJ": { + "1A": "H", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "E", + "1L": "I" + }, + "ACDEGHIK": { + "1A": "H", + "1B": "G", + "1D": "E", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "I", + "1L": "K" + }, + "ACDEGHIL": { + "1A": "H", + "1B": "G", + "1D": "E", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "I" + }, + "ACDEGHJK": { + "1A": "H", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "E", + "1L": "K" + }, + "ACDEGHJL": { + "1A": "H", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "E" + }, + "ACDEGHKL": { + "1A": "H", + "1B": "G", + "1D": "E", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "ACDEGIJK": { + "1A": "E", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "I", + "1L": "K" + }, + "ACDEGIJL": { + "1A": "E", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "I" + }, + "ACDEGIKL": { + "1A": "E", + "1B": "G", + "1D": "I", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "ACDEGJKL": { + "1A": "E", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "ACDEHIJK": { + "1A": "H", + "1B": "J", + "1D": "E", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "I", + "1L": "K" + }, + "ACDEHIJL": { + "1A": "H", + "1B": "J", + "1D": "E", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "I" + }, + "ACDEHIKL": { + "1A": "H", + "1B": "E", + "1D": "I", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "ACDEHJKL": { + "1A": "H", + "1B": "J", + "1D": "E", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "ACDEIJKL": { + "1A": "E", + "1B": "J", + "1D": "I", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "ACDFGHIJ": { + "1A": "H", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "D", + "1L": "I" + }, + "ACDFGHIK": { + "1A": "H", + "1B": "G", + "1D": "F", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "I", + "1L": "K" + }, + "ACDFGHIL": { + "1A": "H", + "1B": "G", + "1D": "F", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "I" + }, + "ACDFGHJK": { + "1A": "H", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "D", + "1L": "K" + }, + "ACDFGHJL": { + "1A": "C", + "1B": "G", + "1D": "J", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "H" + }, + "ACDFGHKL": { + "1A": "H", + "1B": "G", + "1D": "F", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "ACDFGIJK": { + "1A": "C", + "1B": "G", + "1D": "J", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "ACDFGIJL": { + "1A": "C", + "1B": "G", + "1D": "J", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "ACDFGIKL": { + "1A": "C", + "1B": "G", + "1D": "I", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ACDFGJKL": { + "1A": "C", + "1B": "G", + "1D": "J", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ACDFHIJK": { + "1A": "H", + "1B": "J", + "1D": "F", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "I", + "1L": "K" + }, + "ACDFHIJL": { + "1A": "H", + "1B": "J", + "1D": "F", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "I" + }, + "ACDFHIKL": { + "1A": "H", + "1B": "F", + "1D": "I", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "ACDFHJKL": { + "1A": "H", + "1B": "J", + "1D": "F", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "ACDFIJKL": { + "1A": "C", + "1B": "J", + "1D": "I", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ACDGHIJK": { + "1A": "H", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "I", + "1L": "K" + }, + "ACDGHIJL": { + "1A": "H", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "I" + }, + "ACDGHIKL": { + "1A": "H", + "1B": "G", + "1D": "I", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "ACDGHJKL": { + "1A": "H", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "ACDGIJKL": { + "1A": "I", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "ACDHIJKL": { + "1A": "H", + "1B": "J", + "1D": "I", + "1E": "C", + "1G": "A", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "ACEFGHIJ": { + "1A": "H", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "E", + "1L": "I" + }, + "ACEFGHIK": { + "1A": "H", + "1B": "G", + "1D": "E", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "ACEFGHIL": { + "1A": "H", + "1B": "G", + "1D": "E", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "ACEFGHJK": { + "1A": "H", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "E", + "1L": "K" + }, + "ACEFGHJL": { + "1A": "H", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "E" + }, + "ACEFGHKL": { + "1A": "H", + "1B": "G", + "1D": "E", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ACEFGIJK": { + "1A": "E", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "ACEFGIJL": { + "1A": "E", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "ACEFGIKL": { + "1A": "E", + "1B": "G", + "1D": "I", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ACEFGJKL": { + "1A": "E", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ACEFHIJK": { + "1A": "H", + "1B": "J", + "1D": "E", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "ACEFHIJL": { + "1A": "H", + "1B": "J", + "1D": "E", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "ACEFHIKL": { + "1A": "H", + "1B": "E", + "1D": "I", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ACEFHJKL": { + "1A": "H", + "1B": "J", + "1D": "E", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ACEFIJKL": { + "1A": "E", + "1B": "J", + "1D": "I", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ACEGHIJK": { + "1A": "E", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "A", + "1I": "H", + "1K": "I", + "1L": "K" + }, + "ACEGHIJL": { + "1A": "E", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "I" + }, + "ACEGHIKL": { + "1A": "E", + "1B": "G", + "1D": "I", + "1E": "C", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "K" + }, + "ACEGHJKL": { + "1A": "E", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "K" + }, + "ACEGIJKL": { + "1A": "E", + "1B": "J", + "1D": "I", + "1E": "C", + "1G": "A", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "ACEHIJKL": { + "1A": "E", + "1B": "J", + "1D": "I", + "1E": "C", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "K" + }, + "ACFGHIJK": { + "1A": "H", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "ACFGHIJL": { + "1A": "H", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "ACFGHIKL": { + "1A": "H", + "1B": "G", + "1D": "I", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ACFGHJKL": { + "1A": "H", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ACFGIJKL": { + "1A": "I", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ACFHIJKL": { + "1A": "H", + "1B": "J", + "1D": "I", + "1E": "C", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ACGHIJKL": { + "1A": "H", + "1B": "J", + "1D": "I", + "1E": "C", + "1G": "A", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "ADEFGHIJ": { + "1A": "H", + "1B": "G", + "1D": "J", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "E", + "1L": "I" + }, + "ADEFGHIK": { + "1A": "H", + "1B": "G", + "1D": "E", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "ADEFGHIL": { + "1A": "H", + "1B": "G", + "1D": "E", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "ADEFGHJK": { + "1A": "H", + "1B": "G", + "1D": "J", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "E", + "1L": "K" + }, + "ADEFGHJL": { + "1A": "H", + "1B": "G", + "1D": "J", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "E" + }, + "ADEFGHKL": { + "1A": "H", + "1B": "G", + "1D": "E", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ADEFGIJK": { + "1A": "E", + "1B": "G", + "1D": "J", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "ADEFGIJL": { + "1A": "E", + "1B": "G", + "1D": "J", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "ADEFGIKL": { + "1A": "E", + "1B": "G", + "1D": "I", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ADEFGJKL": { + "1A": "E", + "1B": "G", + "1D": "J", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ADEFHIJK": { + "1A": "H", + "1B": "J", + "1D": "E", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "ADEFHIJL": { + "1A": "H", + "1B": "J", + "1D": "E", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "ADEFHIKL": { + "1A": "H", + "1B": "E", + "1D": "I", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ADEFHJKL": { + "1A": "H", + "1B": "J", + "1D": "E", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ADEFIJKL": { + "1A": "E", + "1B": "J", + "1D": "I", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ADEGHIJK": { + "1A": "E", + "1B": "G", + "1D": "J", + "1E": "D", + "1G": "A", + "1I": "H", + "1K": "I", + "1L": "K" + }, + "ADEGHIJL": { + "1A": "E", + "1B": "G", + "1D": "J", + "1E": "D", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "I" + }, + "ADEGHIKL": { + "1A": "E", + "1B": "G", + "1D": "I", + "1E": "D", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "K" + }, + "ADEGHJKL": { + "1A": "E", + "1B": "G", + "1D": "J", + "1E": "D", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "K" + }, + "ADEGIJKL": { + "1A": "E", + "1B": "J", + "1D": "I", + "1E": "D", + "1G": "A", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "ADEHIJKL": { + "1A": "E", + "1B": "J", + "1D": "I", + "1E": "D", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "K" + }, + "ADFGHIJK": { + "1A": "H", + "1B": "G", + "1D": "J", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "ADFGHIJL": { + "1A": "H", + "1B": "G", + "1D": "J", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "ADFGHIKL": { + "1A": "H", + "1B": "G", + "1D": "I", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ADFGHJKL": { + "1A": "H", + "1B": "G", + "1D": "J", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ADFGIJKL": { + "1A": "I", + "1B": "G", + "1D": "J", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ADFHIJKL": { + "1A": "H", + "1B": "J", + "1D": "I", + "1E": "D", + "1G": "A", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "ADGHIJKL": { + "1A": "H", + "1B": "J", + "1D": "I", + "1E": "D", + "1G": "A", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "AEFGHIJK": { + "1A": "E", + "1B": "G", + "1D": "J", + "1E": "F", + "1G": "A", + "1I": "H", + "1K": "I", + "1L": "K" + }, + "AEFGHIJL": { + "1A": "E", + "1B": "G", + "1D": "J", + "1E": "F", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "I" + }, + "AEFGHIKL": { + "1A": "E", + "1B": "G", + "1D": "I", + "1E": "F", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "K" + }, + "AEFGHJKL": { + "1A": "E", + "1B": "G", + "1D": "J", + "1E": "F", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "K" + }, + "AEFGIJKL": { + "1A": "E", + "1B": "J", + "1D": "I", + "1E": "F", + "1G": "A", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "AEFHIJKL": { + "1A": "E", + "1B": "J", + "1D": "I", + "1E": "F", + "1G": "A", + "1I": "H", + "1K": "L", + "1L": "K" + }, + "AEGHIJKL": { + "1A": "E", + "1B": "J", + "1D": "I", + "1E": "A", + "1G": "H", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "AFGHIJKL": { + "1A": "H", + "1B": "J", + "1D": "I", + "1E": "F", + "1G": "A", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "BCDEFGHI": { + "1A": "C", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "E", + "1L": "I" + }, + "BCDEFGHJ": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "J", + "1I": "F", + "1K": "D", + "1L": "E" + }, + "BCDEFGHK": { + "1A": "C", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "E", + "1L": "K" + }, + "BCDEFGHL": { + "1A": "C", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "E" + }, + "BCDEFGIJ": { + "1A": "C", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "J", + "1I": "F", + "1K": "E", + "1L": "I" + }, + "BCDEFGIK": { + "1A": "C", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "E", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "BCDEFGIL": { + "1A": "C", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "E", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "BCDEFGJK": { + "1A": "C", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "J", + "1I": "F", + "1K": "E", + "1L": "K" + }, + "BCDEFGJL": { + "1A": "C", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "J", + "1I": "F", + "1K": "L", + "1L": "E" + }, + "BCDEFGKL": { + "1A": "C", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "E", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "BCDEFHIJ": { + "1A": "C", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "E", + "1L": "I" + }, + "BCDEFHIK": { + "1A": "C", + "1B": "E", + "1D": "B", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "BCDEFHIL": { + "1A": "C", + "1B": "E", + "1D": "B", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "BCDEFHJK": { + "1A": "C", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "E", + "1L": "K" + }, + "BCDEFHJL": { + "1A": "C", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "E" + }, + "BCDEFHKL": { + "1A": "C", + "1B": "E", + "1D": "B", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "BCDEFIJK": { + "1A": "C", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "E", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "BCDEFIJL": { + "1A": "C", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "E", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "BCDEFIKL": { + "1A": "C", + "1B": "E", + "1D": "B", + "1E": "D", + "1G": "I", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "BCDEFJKL": { + "1A": "C", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "E", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "BCDEGHIJ": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "J", + "1I": "D", + "1K": "E", + "1L": "I" + }, + "BCDEGHIK": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "H", + "1I": "D", + "1K": "I", + "1L": "K" + }, + "BCDEGHIL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "H", + "1I": "D", + "1K": "L", + "1L": "I" + }, + "BCDEGHJK": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "J", + "1I": "D", + "1K": "E", + "1L": "K" + }, + "BCDEGHJL": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "J", + "1I": "D", + "1K": "L", + "1L": "E" + }, + "BCDEGHKL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "H", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "BCDEGIJK": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "J", + "1I": "D", + "1K": "I", + "1L": "K" + }, + "BCDEGIJL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "J", + "1I": "D", + "1K": "L", + "1L": "I" + }, + "BCDEGIKL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "I", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "BCDEGJKL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "J", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "BCDEHIJK": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "H", + "1I": "D", + "1K": "I", + "1L": "K" + }, + "BCDEHIJL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "H", + "1I": "D", + "1K": "L", + "1L": "I" + }, + "BCDEHIKL": { + "1A": "E", + "1B": "I", + "1D": "B", + "1E": "C", + "1G": "H", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "BCDEHJKL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "H", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "BCDEIJKL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "I", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "BCDFGHIJ": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "J", + "1I": "F", + "1K": "D", + "1L": "I" + }, + "BCDFGHIK": { + "1A": "C", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "BCDFGHIL": { + "1A": "C", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "BCDFGHJK": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "J", + "1I": "F", + "1K": "D", + "1L": "K" + }, + "BCDFGHJL": { + "1A": "C", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "J" + }, + "BCDFGHKL": { + "1A": "C", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "BCDFGIJK": { + "1A": "C", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "J", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "BCDFGIJL": { + "1A": "C", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "J", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "BCDFGIKL": { + "1A": "C", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "I", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "BCDFGJKL": { + "1A": "C", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "J", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "BCDFHIJK": { + "1A": "C", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "BCDFHIJL": { + "1A": "C", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "BCDFHIKL": { + "1A": "C", + "1B": "I", + "1D": "B", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "BCDFHJKL": { + "1A": "C", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "BCDFIJKL": { + "1A": "C", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "I", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "BCDGHIJK": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "J", + "1I": "D", + "1K": "I", + "1L": "K" + }, + "BCDGHIJL": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "J", + "1I": "D", + "1K": "L", + "1L": "I" + }, + "BCDGHIKL": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "I", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "BCDGHJKL": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "J", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "BCDGIJKL": { + "1A": "I", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "J", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "BCDHIJKL": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "I", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "BCEFGHIJ": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "J", + "1I": "F", + "1K": "E", + "1L": "I" + }, + "BCEFGHIK": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "H", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "BCEFGHIL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "BCEFGHJK": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "J", + "1I": "F", + "1K": "E", + "1L": "K" + }, + "BCEFGHJL": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "J", + "1I": "F", + "1K": "L", + "1L": "E" + }, + "BCEFGHKL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "BCEFGIJK": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "J", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "BCEFGIJL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "J", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "BCEFGIKL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "I", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "BCEFGJKL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "J", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "BCEFHIJK": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "H", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "BCEFHIJL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "BCEFHIKL": { + "1A": "E", + "1B": "I", + "1D": "B", + "1E": "C", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "BCEFHJKL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "BCEFIJKL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "I", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "BCEGHIJK": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "H", + "1I": "G", + "1K": "I", + "1L": "K" + }, + "BCEGHIJL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "H", + "1I": "G", + "1K": "L", + "1L": "I" + }, + "BCEGHIKL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "I", + "1I": "H", + "1K": "L", + "1L": "K" + }, + "BCEGHJKL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "H", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "BCEGIJKL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "I", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "BCEHIJKL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "I", + "1I": "H", + "1K": "L", + "1L": "K" + }, + "BCFGHIJK": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "J", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "BCFGHIJL": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "J", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "BCFGHIKL": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "I", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "BCFGHJKL": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "J", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "BCFGIJKL": { + "1A": "I", + "1B": "G", + "1D": "B", + "1E": "C", + "1G": "J", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "BCFHIJKL": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "I", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "BCGHIJKL": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "C", + "1G": "I", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "BDEFGHIJ": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "J", + "1I": "F", + "1K": "E", + "1L": "I" + }, + "BDEFGHIK": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "BDEFGHIL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "BDEFGHJK": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "J", + "1I": "F", + "1K": "E", + "1L": "K" + }, + "BDEFGHJL": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "J", + "1I": "F", + "1K": "L", + "1L": "E" + }, + "BDEFGHKL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "BDEFGIJK": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "J", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "BDEFGIJL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "J", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "BDEFGIKL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "I", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "BDEFGJKL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "J", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "BDEFHIJK": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "BDEFHIJL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "BDEFHIKL": { + "1A": "E", + "1B": "I", + "1D": "B", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "BDEFHJKL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "BDEFIJKL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "I", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "BDEGHIJK": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "H", + "1I": "G", + "1K": "I", + "1L": "K" + }, + "BDEGHIJL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "H", + "1I": "G", + "1K": "L", + "1L": "I" + }, + "BDEGHIKL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "I", + "1I": "H", + "1K": "L", + "1L": "K" + }, + "BDEGHJKL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "H", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "BDEGIJKL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "I", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "BDEHIJKL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "I", + "1I": "H", + "1K": "L", + "1L": "K" + }, + "BDFGHIJK": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "J", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "BDFGHIJL": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "J", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "BDFGHIKL": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "I", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "BDFGHJKL": { + "1A": "H", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "J", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "BDFGIJKL": { + "1A": "I", + "1B": "G", + "1D": "B", + "1E": "D", + "1G": "J", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "BDFHIJKL": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "I", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "BDGHIJKL": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "D", + "1G": "I", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "BEFGHIJK": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "F", + "1G": "H", + "1I": "G", + "1K": "I", + "1L": "K" + }, + "BEFGHIJL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "F", + "1G": "H", + "1I": "G", + "1K": "L", + "1L": "I" + }, + "BEFGHIKL": { + "1A": "E", + "1B": "G", + "1D": "B", + "1E": "F", + "1G": "I", + "1I": "H", + "1K": "L", + "1L": "K" + }, + "BEFGHJKL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "F", + "1G": "H", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "BEFGIJKL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "F", + "1G": "I", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "BEFHIJKL": { + "1A": "E", + "1B": "J", + "1D": "B", + "1E": "F", + "1G": "I", + "1I": "H", + "1K": "L", + "1L": "K" + }, + "BEGHIJKL": { + "1A": "E", + "1B": "J", + "1D": "I", + "1E": "B", + "1G": "H", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "BFGHIJKL": { + "1A": "H", + "1B": "J", + "1D": "B", + "1E": "F", + "1G": "I", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "CDEFGHIJ": { + "1A": "C", + "1B": "G", + "1D": "J", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "E", + "1L": "I" + }, + "CDEFGHIK": { + "1A": "C", + "1B": "G", + "1D": "E", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "CDEFGHIL": { + "1A": "C", + "1B": "G", + "1D": "E", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "CDEFGHJK": { + "1A": "C", + "1B": "G", + "1D": "J", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "E", + "1L": "K" + }, + "CDEFGHJL": { + "1A": "C", + "1B": "G", + "1D": "J", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "E" + }, + "CDEFGHKL": { + "1A": "C", + "1B": "G", + "1D": "E", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "CDEFGIJK": { + "1A": "C", + "1B": "G", + "1D": "E", + "1E": "D", + "1G": "J", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "CDEFGIJL": { + "1A": "C", + "1B": "G", + "1D": "E", + "1E": "D", + "1G": "J", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "CDEFGIKL": { + "1A": "C", + "1B": "G", + "1D": "E", + "1E": "D", + "1G": "I", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "CDEFGJKL": { + "1A": "C", + "1B": "G", + "1D": "E", + "1E": "D", + "1G": "J", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "CDEFHIJK": { + "1A": "C", + "1B": "J", + "1D": "E", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "CDEFHIJL": { + "1A": "C", + "1B": "J", + "1D": "E", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "CDEFHIKL": { + "1A": "C", + "1B": "E", + "1D": "I", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "CDEFHJKL": { + "1A": "C", + "1B": "J", + "1D": "E", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "CDEFIJKL": { + "1A": "C", + "1B": "J", + "1D": "E", + "1E": "D", + "1G": "I", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "CDEGHIJK": { + "1A": "E", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "H", + "1I": "D", + "1K": "I", + "1L": "K" + }, + "CDEGHIJL": { + "1A": "E", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "H", + "1I": "D", + "1K": "L", + "1L": "I" + }, + "CDEGHIKL": { + "1A": "E", + "1B": "G", + "1D": "I", + "1E": "C", + "1G": "H", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "CDEGHJKL": { + "1A": "E", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "H", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "CDEGIJKL": { + "1A": "E", + "1B": "G", + "1D": "I", + "1E": "C", + "1G": "J", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "CDEHIJKL": { + "1A": "E", + "1B": "J", + "1D": "I", + "1E": "C", + "1G": "H", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "CDFGHIJK": { + "1A": "C", + "1B": "G", + "1D": "J", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "CDFGHIJL": { + "1A": "C", + "1B": "G", + "1D": "J", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "CDFGHIKL": { + "1A": "C", + "1B": "G", + "1D": "I", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "CDFGHJKL": { + "1A": "C", + "1B": "G", + "1D": "J", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "CDFGIJKL": { + "1A": "C", + "1B": "G", + "1D": "I", + "1E": "D", + "1G": "J", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "CDFHIJKL": { + "1A": "C", + "1B": "J", + "1D": "I", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "CDGHIJKL": { + "1A": "H", + "1B": "G", + "1D": "I", + "1E": "C", + "1G": "J", + "1I": "D", + "1K": "L", + "1L": "K" + }, + "CEFGHIJK": { + "1A": "E", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "H", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "CEFGHIJL": { + "1A": "E", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "CEFGHIKL": { + "1A": "E", + "1B": "G", + "1D": "I", + "1E": "C", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "CEFGHJKL": { + "1A": "E", + "1B": "G", + "1D": "J", + "1E": "C", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "CEFGIJKL": { + "1A": "E", + "1B": "G", + "1D": "I", + "1E": "C", + "1G": "J", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "CEFHIJKL": { + "1A": "E", + "1B": "J", + "1D": "I", + "1E": "C", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "CEGHIJKL": { + "1A": "E", + "1B": "J", + "1D": "I", + "1E": "C", + "1G": "H", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "CFGHIJKL": { + "1A": "H", + "1B": "G", + "1D": "I", + "1E": "C", + "1G": "J", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "DEFGHIJK": { + "1A": "E", + "1B": "G", + "1D": "J", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "I", + "1L": "K" + }, + "DEFGHIJL": { + "1A": "E", + "1B": "G", + "1D": "J", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "I" + }, + "DEFGHIKL": { + "1A": "E", + "1B": "G", + "1D": "I", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "DEFGHJKL": { + "1A": "E", + "1B": "G", + "1D": "J", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "DEFGIJKL": { + "1A": "E", + "1B": "G", + "1D": "I", + "1E": "D", + "1G": "J", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "DEFHIJKL": { + "1A": "E", + "1B": "J", + "1D": "I", + "1E": "D", + "1G": "H", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "DEGHIJKL": { + "1A": "E", + "1B": "J", + "1D": "I", + "1E": "D", + "1G": "H", + "1I": "G", + "1K": "L", + "1L": "K" + }, + "DFGHIJKL": { + "1A": "H", + "1B": "G", + "1D": "I", + "1E": "D", + "1G": "J", + "1I": "F", + "1K": "L", + "1L": "K" + }, + "EFGHIJKL": { + "1A": "E", + "1B": "J", + "1D": "I", + "1E": "F", + "1G": "H", + "1I": "G", + "1K": "L", + "1L": "K" + } + } +} \ No newline at end of file diff --git a/data/leaderboard.json b/data/leaderboard.json index b3d86f5..06dd4f2 100644 --- a/data/leaderboard.json +++ b/data/leaderboard.json @@ -1,6 +1,6 @@ { - "last_updated": "2026-06-30T19:44:42.498795+00:00", - "total_results": 76, + "last_updated": "2026-06-30T19:57:44.920389+00:00", + "total_results": 77, "total_models": 11, "qualifiers_known": 32, "qualifiers_ready": true, @@ -10,12 +10,12 @@ "model": "MiMo-V2.5-Pro", "model_id": "xiaomi/mimo-v2.5-pro-20260422", "brier_group": 35.0096, - "brier_knockout": 0.9257, - "brier_total": 16.632216, + "brier_knockout": 1.4441, + "brier_total": 16.461897, "quiniela_points": 52, "roi": null, "roi_status": "no_market_data", - "n_matches_scored": 76, + "n_matches_scored": 77, "qualifier_accuracy": { "hits": 26, "score": 0.8125, @@ -47,10 +47,11 @@ "hits": 2, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "CAN", - "MAR" + "MAR", + "PAR" ], "false_positives": [ "ARG", @@ -136,12 +137,12 @@ "model": "DeepSeek-V4-Pro", "model_id": "deepseek/deepseek-v4-pro-20260423", "brier_group": 35.0214, - "brier_knockout": 1.065, - "brier_total": 16.645137, + "brier_knockout": 1.555, + "brier_total": 16.474616, "quiniela_points": 48, "roi": null, "roi_status": "no_market_data", - "n_matches_scored": 76, + "n_matches_scored": 77, "qualifier_accuracy": { "hits": 27, "score": 0.84375, @@ -171,10 +172,11 @@ "hits": 2, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "MAR", - "NOR" + "NOR", + "PAR" ], "false_positives": [ "ARG", @@ -260,12 +262,12 @@ "model": "Nex-N2-Pro", "model_id": "nex-agi/nex-n2-pro:free", "brier_group": 35.1942, - "brier_knockout": 0.8793, - "brier_total": 16.717216, + "brier_knockout": 1.1709, + "brier_total": 16.530464, "quiniela_points": 47, "roi": null, "roi_status": "no_market_data", - "n_matches_scored": 76, + "n_matches_scored": 77, "qualifier_accuracy": { "hits": 27, "score": 0.84375, @@ -295,11 +297,12 @@ "hits": 1, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "CAN", "MAR", - "NOR" + "NOR", + "PAR" ], "false_positives": [ "ARG", @@ -386,12 +389,12 @@ "model": "MiniMax-M3", "model_id": "minimax/minimax-m3-20260531", "brier_group": 35.3422, - "brier_knockout": 0.8113, - "brier_total": 16.783742, + "brier_knockout": 1.4837, + "brier_total": 16.61997, "quiniela_points": 53, "roi": null, "roi_status": "no_market_data", - "n_matches_scored": 76, + "n_matches_scored": 77, "qualifier_accuracy": { "hits": 27, "score": 0.84375, @@ -421,9 +424,10 @@ "hits": 3, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ - "MAR" + "MAR", + "PAR" ], "false_positives": [ "ARG", @@ -508,12 +512,12 @@ "model": "Gemini-3.5-Flash", "model_id": "google/gemini-3.5-flash-20260519", "brier_group": 35.535, - "brier_knockout": 0.825, - "brier_total": 16.875789, + "brier_knockout": 1.2475, + "brier_total": 16.694773, "quiniela_points": 51, "roi": null, "roi_status": "no_market_data", - "n_matches_scored": 76, + "n_matches_scored": 77, "qualifier_accuracy": { "hits": 26, "score": 0.8125, @@ -545,9 +549,10 @@ "hits": 3, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ - "MAR" + "MAR", + "PAR" ], "false_positives": [ "ARG", @@ -632,12 +637,12 @@ "model": "Qwen-3.7-Max", "model_id": "qwen/qwen3.7-max-20260520", "brier_group": 35.735, - "brier_knockout": 1.2075, - "brier_total": 16.990658, + "brier_knockout": 1.77, + "brier_total": 16.822208, "quiniela_points": 46, "roi": null, "roi_status": "no_market_data", - "n_matches_scored": 76, + "n_matches_scored": 77, "qualifier_accuracy": { "hits": 27, "score": 0.84375, @@ -667,11 +672,12 @@ "hits": 1, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "CAN", "MAR", - "NOR" + "NOR", + "PAR" ], "false_positives": [ "ARG", @@ -758,12 +764,12 @@ "model": "GPT-5.5", "model_id": "openai/gpt-5.5-20260423", "brier_group": 35.8112, - "brier_knockout": 0.9222, - "brier_total": 17.011737, + "brier_knockout": 1.3066, + "brier_total": 16.827743, "quiniela_points": 47, "roi": null, "roi_status": "no_market_data", - "n_matches_scored": 76, + "n_matches_scored": 77, "qualifier_accuracy": { "hits": 27, "score": 0.84375, @@ -793,10 +799,11 @@ "hits": 2, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "MAR", - "NOR" + "NOR", + "PAR" ], "false_positives": [ "ARG", @@ -882,12 +889,12 @@ "model": "Grok-4.3", "model_id": "x-ai/grok-4.3-20260430", "brier_group": 35.909, - "brier_knockout": 1.2217, - "brier_total": 17.073826, + "brier_knockout": 1.8301, + "brier_total": 16.907461, "quiniela_points": 47, "roi": null, "roi_status": "no_market_data", - "n_matches_scored": 76, + "n_matches_scored": 77, "qualifier_accuracy": { "hits": 25, "score": 0.78125, @@ -921,10 +928,11 @@ "hits": 2, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "MAR", - "NOR" + "NOR", + "PAR" ], "false_positives": [ "ARG", @@ -1010,12 +1018,12 @@ "model": "Kimi-K2.6", "model_id": "moonshotai/kimi-k2.6-20260420", "brier_group": 36.1986, - "brier_knockout": 1.0554, - "brier_total": 17.202253, + "brier_knockout": 1.6954, + "brier_total": 17.034112, "quiniela_points": 45, "roi": null, "roi_status": "no_market_data", - "n_matches_scored": 76, + "n_matches_scored": 77, "qualifier_accuracy": { "hits": 26, "score": 0.8125, @@ -1047,10 +1055,11 @@ "hits": 2, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "MAR", - "NOR" + "NOR", + "PAR" ], "false_positives": [ "ARG", @@ -1136,12 +1145,12 @@ "model": "Claude-Fable-5", "model_id": "anthropic/claude-5-fable-20260609", "brier_group": 36.638, - "brier_knockout": 0.8639, - "brier_total": 17.400311, + "brier_knockout": 1.4264, + "brier_total": 17.222078, "quiniela_points": 48, "roi": null, "roi_status": "no_market_data", - "n_matches_scored": 76, + "n_matches_scored": 77, "qualifier_accuracy": { "hits": 27, "score": 0.84375, @@ -1171,9 +1180,10 @@ "hits": 3, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ - "MAR" + "MAR", + "PAR" ], "false_positives": [ "ARG", @@ -1258,12 +1268,12 @@ "model": "GLM-5.1", "model_id": "z-ai/glm-5.1-20260406", "brier_group": 36.7908, - "brier_knockout": 0.945, - "brier_total": 17.476958, + "brier_knockout": 1.3675, + "brier_total": 17.289692, "quiniela_points": 50, "roi": null, "roi_status": "no_market_data", - "n_matches_scored": 76, + "n_matches_scored": 77, "qualifier_accuracy": { "hits": 26, "score": 0.8125, @@ -1295,10 +1305,11 @@ "hits": 2, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "MAR", - "NOR" + "NOR", + "PAR" ], "false_positives": [ "ARG", diff --git a/data/results/2026-06-29.json b/data/results/2026-06-29.json index 438f61b..d7a6faf 100644 --- a/data/results/2026-06-29.json +++ b/data/results/2026-06-29.json @@ -1,6 +1,6 @@ { "date": "2026-06-29", - "last_updated": "2026-06-30T19:44:42.427075+00:00", + "last_updated": "2026-06-30T19:54:38.098376+00:00", "matches": [ { "fd_id": null, @@ -18,7 +18,7 @@ }, { "fd_id": null, - "match_id": null, + "match_id": 74, "home_team": "GER", "away_team": "PAR", "score": { @@ -28,7 +28,8 @@ "outcome": "away", "date": "2026-06-29", "stage": "R32", - "group": null + "group": null, + "round": "round_of_32" }, { "fd_id": null, diff --git a/data/tournament.json b/data/tournament.json index beaaf0d..10cf022 100644 --- a/data/tournament.json +++ b/data/tournament.json @@ -997,7 +997,7 @@ "match_id": 74, "round": "round_of_32", "home_team": "GER", - "away_team": "BIH", + "away_team": "PAR", "date": "2026-06-29", "venue": { "stadium": "Gillette Stadium", @@ -1039,7 +1039,7 @@ "match_id": 77, "round": "round_of_32", "home_team": "FRA", - "away_team": "PAR", + "away_team": "SWE", "date": "2026-06-30", "venue": { "stadium": "MetLife Stadium", @@ -1095,7 +1095,7 @@ "match_id": 81, "round": "round_of_32", "home_team": "USA", - "away_team": "ALG", + "away_team": "BIH", "date": "2026-07-01", "venue": { "stadium": "Levi's Stadium", @@ -1151,7 +1151,7 @@ "match_id": 85, "round": "round_of_32", "home_team": "SUI", - "away_team": "SWE", + "away_team": "ALG", "date": "2026-07-02", "venue": { "stadium": "BC Place", @@ -1206,7 +1206,7 @@ { "match_id": 89, "round": "round_of_16", - "home_team": "W74", + "home_team": "PAR", "away_team": "W77", "date": "2026-07-04", "venue": { @@ -1539,13 +1539,13 @@ "SEN" ], "third_slot_assignment": { - "77": "D", - "74": "B", + "74": "D", + "77": "F", "79": "E", - "82": "I", "80": "K", - "85": "F", - "81": "J", + "81": "B", + "82": "I", + "85": "J", "87": "L" }, "groups_complete": [ @@ -1563,6 +1563,6 @@ "L" ], "all_groups_complete": true, - "last_updated": "2026-06-30T19:44:42.429762+00:00" + "last_updated": "2026-06-30T19:57:31.497154+00:00" } } \ No newline at end of file diff --git a/docs/data/bracket.json b/docs/data/bracket.json index c02c0b4..144e067 100644 --- a/docs/data/bracket.json +++ b/docs/data/bracket.json @@ -1,5 +1,5 @@ { - "last_updated": "2026-06-30T19:44:43.415226+00:00", + "last_updated": "2026-06-30T19:57:45.161394+00:00", "rounds_order": [ "R32", "R16", @@ -57,7 +57,7 @@ "stage": "R32", "round": "round_of_32", "home_team": "GER", - "away_team": "BIH", + "away_team": "PAR", "home_slot": "1E", "away_slot": "3rd(A/B/C/D/F)", "date": "2026-06-29", @@ -66,10 +66,13 @@ "city": "Foxborough" }, "feeds_into": 89, - "played": false, - "score": null, - "outcome": null, - "winner": null, + "played": true, + "score": { + "home": 4, + "away": 5 + }, + "outcome": "away", + "winner": "PAR", "target_round": "R16", "model_picks": { "home": { @@ -189,7 +192,7 @@ "stage": "R32", "round": "round_of_32", "home_team": "FRA", - "away_team": "PAR", + "away_team": "SWE", "home_slot": "1I", "away_slot": "3rd(C/D/F/G/H)", "date": "2026-06-30", @@ -357,7 +360,7 @@ "stage": "R32", "round": "round_of_32", "home_team": "USA", - "away_team": "ALG", + "away_team": "BIH", "home_slot": "1D", "away_slot": "3rd(B/E/F/I/J)", "date": "2026-07-01", @@ -537,7 +540,7 @@ "stage": "R32", "round": "round_of_32", "home_team": "SUI", - "away_team": "SWE", + "away_team": "ALG", "home_slot": "1B", "away_slot": "3rd(E/F/G/I/J)", "date": "2026-07-02", @@ -692,7 +695,7 @@ "match_id": 89, "stage": "R16", "round": "round_of_16", - "home_team": "W74", + "home_team": "PAR", "away_team": "W77", "home_slot": "W74", "away_slot": "W77", @@ -1190,9 +1193,10 @@ "hits": 3, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ - "MAR" + "MAR", + "PAR" ], "false_positives": [ "ARG", @@ -1281,10 +1285,11 @@ "hits": 2, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "MAR", - "NOR" + "NOR", + "PAR" ], "false_positives": [ "ARG", @@ -1374,9 +1379,10 @@ "hits": 3, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ - "MAR" + "MAR", + "PAR" ], "false_positives": [ "ARG", @@ -1465,10 +1471,11 @@ "hits": 2, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "MAR", - "NOR" + "NOR", + "PAR" ], "false_positives": [ "ARG", @@ -1558,10 +1565,11 @@ "hits": 2, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "MAR", - "NOR" + "NOR", + "PAR" ], "false_positives": [ "ARG", @@ -1651,10 +1659,11 @@ "hits": 2, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "MAR", - "NOR" + "NOR", + "PAR" ], "false_positives": [ "ARG", @@ -1744,10 +1753,11 @@ "hits": 2, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "MAR", - "NOR" + "NOR", + "PAR" ], "false_positives": [ "ARG", @@ -1837,10 +1847,11 @@ "hits": 2, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "CAN", - "MAR" + "MAR", + "PAR" ], "false_positives": [ "ARG", @@ -1930,9 +1941,10 @@ "hits": 3, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ - "MAR" + "MAR", + "PAR" ], "false_positives": [ "ARG", @@ -2021,11 +2033,12 @@ "hits": 1, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "CAN", "MAR", - "NOR" + "NOR", + "PAR" ], "false_positives": [ "ARG", @@ -2116,11 +2129,12 @@ "hits": 1, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "CAN", "MAR", - "NOR" + "NOR", + "PAR" ], "false_positives": [ "ARG", diff --git a/docs/data/leaderboard.json b/docs/data/leaderboard.json index b3d86f5..06dd4f2 100644 --- a/docs/data/leaderboard.json +++ b/docs/data/leaderboard.json @@ -1,6 +1,6 @@ { - "last_updated": "2026-06-30T19:44:42.498795+00:00", - "total_results": 76, + "last_updated": "2026-06-30T19:57:44.920389+00:00", + "total_results": 77, "total_models": 11, "qualifiers_known": 32, "qualifiers_ready": true, @@ -10,12 +10,12 @@ "model": "MiMo-V2.5-Pro", "model_id": "xiaomi/mimo-v2.5-pro-20260422", "brier_group": 35.0096, - "brier_knockout": 0.9257, - "brier_total": 16.632216, + "brier_knockout": 1.4441, + "brier_total": 16.461897, "quiniela_points": 52, "roi": null, "roi_status": "no_market_data", - "n_matches_scored": 76, + "n_matches_scored": 77, "qualifier_accuracy": { "hits": 26, "score": 0.8125, @@ -47,10 +47,11 @@ "hits": 2, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "CAN", - "MAR" + "MAR", + "PAR" ], "false_positives": [ "ARG", @@ -136,12 +137,12 @@ "model": "DeepSeek-V4-Pro", "model_id": "deepseek/deepseek-v4-pro-20260423", "brier_group": 35.0214, - "brier_knockout": 1.065, - "brier_total": 16.645137, + "brier_knockout": 1.555, + "brier_total": 16.474616, "quiniela_points": 48, "roi": null, "roi_status": "no_market_data", - "n_matches_scored": 76, + "n_matches_scored": 77, "qualifier_accuracy": { "hits": 27, "score": 0.84375, @@ -171,10 +172,11 @@ "hits": 2, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "MAR", - "NOR" + "NOR", + "PAR" ], "false_positives": [ "ARG", @@ -260,12 +262,12 @@ "model": "Nex-N2-Pro", "model_id": "nex-agi/nex-n2-pro:free", "brier_group": 35.1942, - "brier_knockout": 0.8793, - "brier_total": 16.717216, + "brier_knockout": 1.1709, + "brier_total": 16.530464, "quiniela_points": 47, "roi": null, "roi_status": "no_market_data", - "n_matches_scored": 76, + "n_matches_scored": 77, "qualifier_accuracy": { "hits": 27, "score": 0.84375, @@ -295,11 +297,12 @@ "hits": 1, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "CAN", "MAR", - "NOR" + "NOR", + "PAR" ], "false_positives": [ "ARG", @@ -386,12 +389,12 @@ "model": "MiniMax-M3", "model_id": "minimax/minimax-m3-20260531", "brier_group": 35.3422, - "brier_knockout": 0.8113, - "brier_total": 16.783742, + "brier_knockout": 1.4837, + "brier_total": 16.61997, "quiniela_points": 53, "roi": null, "roi_status": "no_market_data", - "n_matches_scored": 76, + "n_matches_scored": 77, "qualifier_accuracy": { "hits": 27, "score": 0.84375, @@ -421,9 +424,10 @@ "hits": 3, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ - "MAR" + "MAR", + "PAR" ], "false_positives": [ "ARG", @@ -508,12 +512,12 @@ "model": "Gemini-3.5-Flash", "model_id": "google/gemini-3.5-flash-20260519", "brier_group": 35.535, - "brier_knockout": 0.825, - "brier_total": 16.875789, + "brier_knockout": 1.2475, + "brier_total": 16.694773, "quiniela_points": 51, "roi": null, "roi_status": "no_market_data", - "n_matches_scored": 76, + "n_matches_scored": 77, "qualifier_accuracy": { "hits": 26, "score": 0.8125, @@ -545,9 +549,10 @@ "hits": 3, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ - "MAR" + "MAR", + "PAR" ], "false_positives": [ "ARG", @@ -632,12 +637,12 @@ "model": "Qwen-3.7-Max", "model_id": "qwen/qwen3.7-max-20260520", "brier_group": 35.735, - "brier_knockout": 1.2075, - "brier_total": 16.990658, + "brier_knockout": 1.77, + "brier_total": 16.822208, "quiniela_points": 46, "roi": null, "roi_status": "no_market_data", - "n_matches_scored": 76, + "n_matches_scored": 77, "qualifier_accuracy": { "hits": 27, "score": 0.84375, @@ -667,11 +672,12 @@ "hits": 1, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "CAN", "MAR", - "NOR" + "NOR", + "PAR" ], "false_positives": [ "ARG", @@ -758,12 +764,12 @@ "model": "GPT-5.5", "model_id": "openai/gpt-5.5-20260423", "brier_group": 35.8112, - "brier_knockout": 0.9222, - "brier_total": 17.011737, + "brier_knockout": 1.3066, + "brier_total": 16.827743, "quiniela_points": 47, "roi": null, "roi_status": "no_market_data", - "n_matches_scored": 76, + "n_matches_scored": 77, "qualifier_accuracy": { "hits": 27, "score": 0.84375, @@ -793,10 +799,11 @@ "hits": 2, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "MAR", - "NOR" + "NOR", + "PAR" ], "false_positives": [ "ARG", @@ -882,12 +889,12 @@ "model": "Grok-4.3", "model_id": "x-ai/grok-4.3-20260430", "brier_group": 35.909, - "brier_knockout": 1.2217, - "brier_total": 17.073826, + "brier_knockout": 1.8301, + "brier_total": 16.907461, "quiniela_points": 47, "roi": null, "roi_status": "no_market_data", - "n_matches_scored": 76, + "n_matches_scored": 77, "qualifier_accuracy": { "hits": 25, "score": 0.78125, @@ -921,10 +928,11 @@ "hits": 2, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "MAR", - "NOR" + "NOR", + "PAR" ], "false_positives": [ "ARG", @@ -1010,12 +1018,12 @@ "model": "Kimi-K2.6", "model_id": "moonshotai/kimi-k2.6-20260420", "brier_group": 36.1986, - "brier_knockout": 1.0554, - "brier_total": 17.202253, + "brier_knockout": 1.6954, + "brier_total": 17.034112, "quiniela_points": 45, "roi": null, "roi_status": "no_market_data", - "n_matches_scored": 76, + "n_matches_scored": 77, "qualifier_accuracy": { "hits": 26, "score": 0.8125, @@ -1047,10 +1055,11 @@ "hits": 2, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "MAR", - "NOR" + "NOR", + "PAR" ], "false_positives": [ "ARG", @@ -1136,12 +1145,12 @@ "model": "Claude-Fable-5", "model_id": "anthropic/claude-5-fable-20260609", "brier_group": 36.638, - "brier_knockout": 0.8639, - "brier_total": 17.400311, + "brier_knockout": 1.4264, + "brier_total": 17.222078, "quiniela_points": 48, "roi": null, "roi_status": "no_market_data", - "n_matches_scored": 76, + "n_matches_scored": 77, "qualifier_accuracy": { "hits": 27, "score": 0.84375, @@ -1171,9 +1180,10 @@ "hits": 3, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ - "MAR" + "MAR", + "PAR" ], "false_positives": [ "ARG", @@ -1258,12 +1268,12 @@ "model": "GLM-5.1", "model_id": "z-ai/glm-5.1-20260406", "brier_group": 36.7908, - "brier_knockout": 0.945, - "brier_total": 17.476958, + "brier_knockout": 1.3675, + "brier_total": 17.289692, "quiniela_points": 50, "roi": null, "roi_status": "no_market_data", - "n_matches_scored": 76, + "n_matches_scored": 77, "qualifier_accuracy": { "hits": 26, "score": 0.8125, @@ -1295,10 +1305,11 @@ "hits": 2, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "MAR", - "NOR" + "NOR", + "PAR" ], "false_positives": [ "ARG", diff --git a/docs/data/predictions_summary.json b/docs/data/predictions_summary.json index 4194ecd..f3c410d 100644 --- a/docs/data/predictions_summary.json +++ b/docs/data/predictions_summary.json @@ -35,9 +35,10 @@ "hits": 3, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ - "MAR" + "MAR", + "PAR" ], "false_positives": [ "ARG", @@ -154,10 +155,11 @@ "hits": 2, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "MAR", - "NOR" + "NOR", + "PAR" ], "false_positives": [ "ARG", @@ -277,9 +279,10 @@ "hits": 3, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ - "MAR" + "MAR", + "PAR" ], "false_positives": [ "ARG", @@ -398,10 +401,11 @@ "hits": 2, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "MAR", - "NOR" + "NOR", + "PAR" ], "false_positives": [ "ARG", @@ -519,10 +523,11 @@ "hits": 2, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "MAR", - "NOR" + "NOR", + "PAR" ], "false_positives": [ "ARG", @@ -644,10 +649,11 @@ "hits": 2, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "MAR", - "NOR" + "NOR", + "PAR" ], "false_positives": [ "ARG", @@ -767,10 +773,11 @@ "hits": 2, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "MAR", - "NOR" + "NOR", + "PAR" ], "false_positives": [ "ARG", @@ -890,10 +897,11 @@ "hits": 2, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "CAN", - "MAR" + "MAR", + "PAR" ], "false_positives": [ "ARG", @@ -1011,9 +1019,10 @@ "hits": 3, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ - "MAR" + "MAR", + "PAR" ], "false_positives": [ "ARG", @@ -1130,11 +1139,12 @@ "hits": 1, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "CAN", "MAR", - "NOR" + "NOR", + "PAR" ], "false_positives": [ "ARG", @@ -1253,11 +1263,12 @@ "hits": 1, "total": 16, "predicted_count": 16, - "reached_count": 4, + "reached_count": 5, "missed": [ "CAN", "MAR", - "NOR" + "NOR", + "PAR" ], "false_positives": [ "ARG", diff --git a/docs/data/results.json b/docs/data/results.json index b1dfe28..874296b 100644 --- a/docs/data/results.json +++ b/docs/data/results.json @@ -1,5 +1,5 @@ { - "last_updated": "2026-06-30T19:44:43.380680+00:00", + "last_updated": "2026-06-30T19:57:45.107003+00:00", "matches": [ { "fd_id": 537327, @@ -1037,6 +1037,21 @@ "stage": "R32", "group": null }, + { + "fd_id": null, + "match_id": 74, + "home_team": "GER", + "away_team": "PAR", + "score": { + "home": 4, + "away": 5 + }, + "outcome": "away", + "date": "2026-06-29", + "stage": "R32", + "group": null, + "round": "round_of_32" + }, { "fd_id": null, "match_id": 75, diff --git a/docs/data/tournament.json b/docs/data/tournament.json index beaaf0d..10cf022 100644 --- a/docs/data/tournament.json +++ b/docs/data/tournament.json @@ -997,7 +997,7 @@ "match_id": 74, "round": "round_of_32", "home_team": "GER", - "away_team": "BIH", + "away_team": "PAR", "date": "2026-06-29", "venue": { "stadium": "Gillette Stadium", @@ -1039,7 +1039,7 @@ "match_id": 77, "round": "round_of_32", "home_team": "FRA", - "away_team": "PAR", + "away_team": "SWE", "date": "2026-06-30", "venue": { "stadium": "MetLife Stadium", @@ -1095,7 +1095,7 @@ "match_id": 81, "round": "round_of_32", "home_team": "USA", - "away_team": "ALG", + "away_team": "BIH", "date": "2026-07-01", "venue": { "stadium": "Levi's Stadium", @@ -1151,7 +1151,7 @@ "match_id": 85, "round": "round_of_32", "home_team": "SUI", - "away_team": "SWE", + "away_team": "ALG", "date": "2026-07-02", "venue": { "stadium": "BC Place", @@ -1206,7 +1206,7 @@ { "match_id": 89, "round": "round_of_16", - "home_team": "W74", + "home_team": "PAR", "away_team": "W77", "date": "2026-07-04", "venue": { @@ -1539,13 +1539,13 @@ "SEN" ], "third_slot_assignment": { - "77": "D", - "74": "B", + "74": "D", + "77": "F", "79": "E", - "82": "I", "80": "K", - "85": "F", - "81": "J", + "81": "B", + "82": "I", + "85": "J", "87": "L" }, "groups_complete": [ @@ -1563,6 +1563,6 @@ "L" ], "all_groups_complete": true, - "last_updated": "2026-06-30T19:44:42.429762+00:00" + "last_updated": "2026-06-30T19:57:31.497154+00:00" } } \ No newline at end of file diff --git a/scripts/update_qualified.py b/scripts/update_qualified.py index 89d646b..53d4738 100644 --- a/scripts/update_qualified.py +++ b/scripts/update_qualified.py @@ -19,10 +19,23 @@ always resolves from the preserved template, never from a previously resolved value. -Third-placed teams are assigned to their Round-of-32 slots with a deterministic -constraint-satisfaction matching that respects the official FIFA bracket -constraints encoded in each slot (e.g. "3rd(A/B/C/D/F)" may only receive the -third-placed team of group A, B, C, D or F). +Third-placed teams are assigned to their Round-of-32 slots **strictly from the +official FIFA "Annex C" combination table** (all 495 possible combinations of +which eight groups produce a qualifying third-placed team). The table is stored +in ``data/annex_c_third_place.json`` keyed by the sorted set of qualifying +groups (e.g. ``"BDEFIJKL"``) and mapping each group-winner slot +(``1A/1B/1D/1E/1G/1I/1K/1L``) to the group whose third-placed team plays there. + +This matters because several different assignments may all satisfy the per-slot +allowed-group constraints (``"3rd(A/B/C/D/F)"`` …), so a plain constraint search +can pick a *valid but wrong* bracket. FIFA fixes one specific assignment per +combination, and getting it wrong breaks the result<->fixture join: e.g. for the +real set {B,D,E,F,I,J,K,L} the correct slot 1E (Germany) opponent is 3D +(Paraguay); a naive search instead put 3B there, leaving the played GER-PAR +octavo unmatched (``match_id: null``). + +A deterministic constraint-satisfaction backtracking remains as a safety net for +combinations not present in the table (e.g. synthetic/partial sets in tests). """ import argparse @@ -39,10 +52,30 @@ BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) RESULTS_DIR = os.path.join(BASE_DIR, "data", "results") TOURNAMENT_PATH = os.path.join(BASE_DIR, "data", "tournament.json") +ANNEX_C_PATH = os.path.join(BASE_DIR, "data", "annex_c_third_place.json") THIRD_RE = re.compile(r"3rd\(([^)]+)\)") SEED_RE = re.compile(r"^([12])([A-L])$") WINNER_RE = re.compile(r"^([WL])(\d+)$") +WINNER_SLOT_RE = re.compile(r"^1([A-L])$") + + +def load_annex_c(path: str = ANNEX_C_PATH) -> dict: + """Load the FIFA Annex C third-place combination table. + + Returns ``{qual_key: {winner_slot_label: group_letter}}`` where ``qual_key`` + is the eight qualifying group letters sorted and concatenated + (e.g. ``"BDEFIJKL"``). Returns ``{}`` if the file is missing/unreadable so + the caller transparently falls back to constraint-satisfaction matching. + """ + try: + with open(path, "r", encoding="utf-8") as f: + return json.load(f).get("combinations", {}) + except (json.JSONDecodeError, OSError): + return {} + + +_ANNEX_C = load_annex_c() def load_all_results(results_dir: str = RESULTS_DIR) -> list: @@ -65,11 +98,69 @@ def _allowed_groups(slot: str) -> list: def assign_third_slots(bracket: list, qualifying_third_groups: list) -> dict: - """Match qualifying third-placed groups to Round-of-32 slots. + """Match qualifying third-placed groups to their Round-of-32 slots. + + Returns ``{match_id(str): group_letter}``. + + Primary path — **FIFA Annex C**: when the exact set of eight qualifying + third-place groups is found in the official combination table (always true + for a real tournament, since the table covers all 495 combinations), the + assignment is taken verbatim from FIFA. This guarantees the *one* correct + bracket among the several that merely satisfy the per-slot constraints. - Returns ``{match_id(str): group_letter}``. Uses deterministic backtracking - that honours each slot's allowed-group constraint, preferring the most - constrained slots first so a valid complete assignment is found. + Fallback — **constraint-satisfaction backtracking**: used only when the + combination is absent from the table or the bracket does not expose real + group-winner slot labels (e.g. synthetic/partial fixtures in unit tests). + """ + groups = sorted(set(qualifying_third_groups)) + annex_assignment = _assign_from_annex_c(bracket, groups) + if annex_assignment is not None: + return annex_assignment + return _assign_third_slots_backtrack(bracket, qualifying_third_groups) + + +def _assign_from_annex_c(bracket: list, groups: list): + """Resolve third-place slots from the FIFA Annex C table. + + ``groups`` must be the sorted list of qualifying third-place group letters. + Returns ``{match_id(str): group_letter}``, or ``None`` when the combination + is not in the table or the bracket lacks real winner-slot labels (so the + caller falls back to constraint-satisfaction matching). + """ + if len(groups) != 8: + return None + row = _ANNEX_C.get("".join(groups)) + if not row: + return None + + assignment = {} + for m in bracket: + # The third-place team always occupies the slot carrying the + # ``3rd(...)`` constraint; the *other* slot carries the group-winner + # label (``1E``) that indexes the Annex C row. + if _allowed_groups(m.get("away_slot")): + winner_slot = m.get("home_slot") + elif _allowed_groups(m.get("home_slot")): + winner_slot = m.get("away_slot") + else: + continue # not a third-place match + if not WINNER_SLOT_RE.match(winner_slot or ""): + return None # no real winner label -> fall back + grp = row.get(winner_slot) + if grp is None: + return None + assignment[str(m["match_id"])] = grp + + return assignment or None + + +def _assign_third_slots_backtrack(bracket: list, qualifying_third_groups: list) -> dict: + """Deterministic constraint-satisfaction fallback (legacy behaviour). + + Honours each slot's allowed-group constraint, preferring the most + constrained slots first so a valid complete assignment is found. Note this + returns *a* valid assignment, not necessarily FIFA's specific one — hence it + is only a safety net behind :func:`_assign_from_annex_c`. """ # Collect third slots: match_id -> sorted list of allowed qualifying groups. slots = {} diff --git a/tests/test_annex_c.py b/tests/test_annex_c.py new file mode 100644 index 0000000..a505377 --- /dev/null +++ b/tests/test_annex_c.py @@ -0,0 +1,201 @@ +"""Tests for the FIFA Annex C third-place seeding fix. + +Background +---------- +The Round-of-32 matches that pit a group winner against one of the eight best +third-placed teams must follow FIFA's pre-published "Annex C" combination table +(all 495 possible combinations of which eight groups produce a qualifying +third). Several different assignments can all satisfy the per-slot allowed-group +constraints (``3rd(A/B/C/D/F)`` …), so a plain constraint search can pick a +*valid but wrong* bracket. + +For the real tournament the qualifying third-place groups are +``{B, D, E, F, I, J, K, L}`` and the official pairings are:: + + 1A (MEX) vs 3E (ECU) -> M79 + 1B (SUI) vs 3J (ALG) -> M85 + 1D (USA) vs 3B (BIH) -> M81 + 1E (GER) vs 3D (PAR) -> M74 + 1G (BEL) vs 3I (SEN) -> M82 + 1I (FRA) vs 3F (SWE) -> M77 + 1K (COL) vs 3L (GHA) -> M87 + 1L (ENG) vs 3K (COD) -> M80 + +The pre-fix builder rotated four thirds (M74 BIH, M77 PAR, M81 ALG, M85 SWE), +which left the already-played GER-PAR octavo (the M74 fixture read {GER, BIH}) +unmatched by ``reconcile_results`` and stuck on ``match_id: null``. +""" + +import glob +import json +import os +import sys + +sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "scripts")) +sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "src")) + +import update_qualified as uq # noqa: E402 + +BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +TOURNAMENT_PATH = os.path.join(BASE_DIR, "data", "tournament.json") +ANNEX_C_PATH = os.path.join(BASE_DIR, "data", "annex_c_third_place.json") +RESULTS_DIR = os.path.join(BASE_DIR, "data", "results") + +# Real tournament combination and its official Annex C pairings. +REAL_THIRD_GROUPS = sorted("BDEFIJKL") +# Group-winner slot label -> group whose third-placed team plays there. +EXPECTED_SLOT_TO_GROUP = { + "1A": "E", "1B": "J", "1D": "B", "1E": "D", + "1G": "I", "1I": "F", "1K": "L", "1L": "K", +} +# Round-of-32 match_id -> group whose third-placed team plays there. +EXPECTED_MATCH_TO_GROUP = { + "79": "E", "85": "J", "81": "B", "74": "D", + "82": "I", "77": "F", "87": "L", "80": "K", +} +# The eight group-winner R32 slots that host a third-placed team -> match_id. +SLOT_LABEL_MATCH_ID = { + "1A": 79, "1B": 85, "1D": 81, "1E": 74, + "1G": 82, "1I": 77, "1K": 87, "1L": 80, +} + + +def _load_json(path): + with open(path, "r", encoding="utf-8") as f: + return json.load(f) + + +# --------------------------------------------------------------------------- # +# Annex C data file integrity +# --------------------------------------------------------------------------- # + +def test_annex_c_file_has_all_495_combinations(): + data = _load_json(ANNEX_C_PATH) + combos = data["combinations"] + assert len(combos) == 495 + assert data["_slot_order"] == ["1A", "1B", "1D", "1E", "1G", "1I", "1K", "1L"] + + +def test_annex_c_every_combination_is_a_valid_bijection(): + combos = _load_json(ANNEX_C_PATH)["combinations"] + for key, row in combos.items(): + # Key is 8 distinct sorted group letters. + assert len(key) == 8 + assert list(key) == sorted(key) + # Exactly the 8 group-winner slots are filled. + assert set(row.keys()) == {"1A", "1B", "1D", "1E", "1G", "1I", "1K", "1L"} + # The assigned third-groups are exactly the qualifying groups (bijection): + # every qualifying group is used once, no group from outside the set. + assert sorted(row.values()) == sorted(key) + + +def test_annex_c_real_combination_row(): + combos = _load_json(ANNEX_C_PATH)["combinations"] + assert combos["".join(REAL_THIRD_GROUPS)] == EXPECTED_SLOT_TO_GROUP + + +# --------------------------------------------------------------------------- # +# assign_third_slots on the real bracket uses Annex C verbatim +# --------------------------------------------------------------------------- # + +def test_assign_third_slots_matches_annex_c_on_real_bracket(): + tournament = _load_json(TOURNAMENT_PATH) + bracket = tournament["knockout_bracket"] + assignment = uq.assign_third_slots(bracket, REAL_THIRD_GROUPS) + assert assignment == EXPECTED_MATCH_TO_GROUP + + +def test_germany_third_place_opponent_is_group_D_not_group_B(): + """Regression: the M74 (1E) slot must take group D's third (PAR), not B (BIH).""" + tournament = _load_json(TOURNAMENT_PATH) + bracket = tournament["knockout_bracket"] + assignment = uq.assign_third_slots(bracket, REAL_THIRD_GROUPS) + assert assignment["74"] == "D" # Paraguay's group + assert assignment["74"] != "B" # not Bosnia & Herzegovina's group + + +def test_annex_c_assignment_respects_each_slot_constraint(): + """Sanity: FIFA's pairings still satisfy the bracket's allowed-group lists.""" + tournament = _load_json(TOURNAMENT_PATH) + bracket = tournament["knockout_bracket"] + allowed_by_mid = {} + for m in bracket: + allowed = uq._allowed_groups(m.get("away_slot")) or uq._allowed_groups(m.get("home_slot")) + if allowed: + allowed_by_mid[str(m["match_id"])] = set(allowed) + assignment = uq.assign_third_slots(bracket, REAL_THIRD_GROUPS) + for mid, grp in assignment.items(): + assert grp in allowed_by_mid[mid], f"M{mid} got {grp} outside {allowed_by_mid[mid]}" + + +# --------------------------------------------------------------------------- # +# Resolved tournament.json reflects the official R32 third-place pairings +# --------------------------------------------------------------------------- # + +def test_resolved_bracket_r32_third_place_pairings(): + tournament = _load_json(TOURNAMENT_PATH) + qualified = tournament["qualified"] + by_group = qualified["by_group"] + + # Map the 8 group-winner slots to {winner_team, third_team} expected pairs. + expected_pairs = {} + for slot_label, third_grp in EXPECTED_SLOT_TO_GROUP.items(): + winner_grp = slot_label[1] # "1E" -> "E" + winner = by_group[winner_grp]["1st"] + third = by_group[third_grp]["3rd"] + expected_pairs[SLOT_LABEL_MATCH_ID[slot_label]] = {winner, third} + + bracket = {m["match_id"]: m for m in tournament["knockout_bracket"]} + for mid, expected in expected_pairs.items(): + got = {bracket[mid]["home_team"], bracket[mid]["away_team"]} + assert got == expected, f"M{mid}: expected {expected}, got {got}" + + # Spot-check the marquee fixture explicitly. + assert {bracket[74]["home_team"], bracket[74]["away_team"]} == {"GER", "PAR"} + + +# --------------------------------------------------------------------------- # +# The played GER-PAR result reconciles onto M74 (the whole point of the fix) +# --------------------------------------------------------------------------- # + +def _find_result(team_pair): + for filepath in sorted(glob.glob(os.path.join(RESULTS_DIR, "*.json"))): + data = _load_json(filepath) + matches = data if isinstance(data, list) else data.get("matches", []) + for m in matches: + if {m.get("home_team"), m.get("away_team")} == team_pair: + return m + return None + + +def test_ger_par_result_is_reconciled_to_match_74(): + res = _find_result({"GER", "PAR"}) + assert res is not None, "GER-PAR result not found" + assert res["match_id"] == 74 + assert res["stage"] == "R32" + # Orientation matches the bracket fixture (winner slot 1E is home). + assert res["home_team"] == "GER" + assert res["away_team"] == "PAR" + + +# --------------------------------------------------------------------------- # +# The constraint-satisfaction fallback still works for synthetic brackets +# --------------------------------------------------------------------------- # + +def test_fallback_used_when_bracket_lacks_real_winner_labels(): + # Synthetic bracket with placeholder winner slots ("1X") -> Annex C cannot + # be indexed, so the deterministic backtracking fallback fills the slots. + constraints = { + "74": "A/B/C/D/F", "77": "C/D/F/G/H", "79": "C/E/F/H/I", "80": "E/H/I/J/K", + "81": "B/E/F/I/J", "82": "A/E/H/I/J", "85": "E/F/G/I/J", "87": "D/E/I/J/L", + } + bracket = [ + {"match_id": int(mid), "home_slot": "1X", "away_slot": f"3rd({groups})"} + for mid, groups in constraints.items() + ] + groups = list("BDEFIJKL") + assignment = uq.assign_third_slots(bracket, groups) + assert len(assignment) == 8 + assert sorted(assignment.values()) == groups # bijection + for mid, grp in assignment.items(): + assert grp in constraints[mid].split("/") # respects constraints