{"abstract":"The event trace violates the device boundary rule and produces incorrect keyboard state or command output.","category":"Keyboard interactions","checks":9,"contract":"Events [kind,device,code,time,repeat]. Consecutive repeated down events for the same device/code coalesce into [device,code,first,last,count]; any nonrepeat or non-down event flushes the batch and is emitted as a raw event. A repeated down for a different token flushes and starts another. Return ordered entries tagged repeat or raw. Inputs are finite ordered event traces; return the stated deterministic state. Batch entries are independent. N varies the number of independent input transactions.","evaluation_group":"s3-keyboard-repeat-coalescing","failed_approach":"The partial repair changes this transition to batch[0]==device, which still violates the model contract on the explicit regression traces.","family":"s3-keyboard-interactions-repeat-coalescing-device-boundary","id":"FA-31696","implementations":{"attempt":{"sha256":"f25666deac0cbdfd7f0610c9dedea00b16c065f9dc55896df12a7673efe1743e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(cases):\n    def run(c):\n        out=[]; batch=None\n        for kind,device,code,now,repeat in c:\n            eligible=kind=='down' and repeat\n            if eligible:\n                if batch is not None and batch[0]==device:\n                    batch[3]=now\n                    batch[4]+=1\n                else:\n                    if batch is not None: out.append(['repeat']+batch)\n                    batch=[device,code,now,now,1]\n            else:\n                if batch is not None:\n                    out.append(['repeat']+batch)\n                    batch=None\n                out.append(['raw',kind,device,code,now])\n        if batch is not None: out.append(['repeat']+batch)\n        return out\n    return [run(c) for c in cases]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('repeat-coalescing scenario 0', solve([[]] * N), [[]] * N)\ncheck('repeat-coalescing scenario 1', solve([[['down', 'a', 'A', 10, False]]] * N), [[['raw', 'down', 'a', 'A', 10]]] * N)\ncheck('repeat-coalescing scenario 2', solve([[['down', 'a', 'A', 10, True], ['down', 'a', 'A', 12, True]]] * N), [[['repeat', 'a', 'A', 10, 12, 2]]] * N)\ncheck('repeat-coalescing scenario 3', solve([[['down', 'a', 'A', 10, True], ['down', 'b', 'A', 12, True]]] * N), [[['repeat', 'a', 'A', 10, 10, 1], ['repeat', 'b', 'A', 12, 12, 1]]] * N)\ncheck('repeat-coalescing scenario 4', solve([[['down', 'a', 'A', 10, True], ['down', 'a', 'B', 12, True]]] * N), [[['repeat', 'a', 'A', 10, 10, 1], ['repeat', 'a', 'B', 12, 12, 1]]] * N)\ncheck('repeat-coalescing scenario 5', solve([[['down', 'a', 'A', 10, True], ['up', 'a', 'A', 12, False], ['down', 'a', 'A', 14, True]]] * N), [[['repeat', 'a', 'A', 10, 10, 1], ['raw', 'up', 'a', 'A', 12], ['repeat', 'a', 'A', 14, 14, 1]]] * N)\ncheck('repeat-coalescing scenario 6', solve([[['up', 'a', 'A', 10, True]]] * N), [[['raw', 'up', 'a', 'A', 10]]] * N)\ncheck('repeat-coalescing scenario 7', solve([[['down', 'a', 'A', 10, True], ['text', 'a', 'A', 12, False]]] * N), [[['repeat', 'a', 'A', 10, 10, 1], ['raw', 'text', 'a', 'A', 12]]] * N)\ncheck('repeat-coalescing scenario 8', solve([[['down', 'a', 'A', 10, True], ['down', 'a', 'A', 12, False], ['down', 'a', 'A', 14, True]]] * N), [[['repeat', 'a', 'A', 10, 10, 1], ['raw', 'down', 'a', 'A', 12], ['repeat', 'a', 'A', 14, 14, 1]]] * N)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"8fbc083dce4ca1b2934846697d7c51add507f7a5d93743af436e2103e171090a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(cases):\n    def run(c):\n        out=[]; batch=None\n        for kind,device,code,now,repeat in c:\n            eligible=kind=='down' and repeat\n            if eligible:\n                if batch is not None and batch[1]==code:\n                    batch[3]=now\n                    batch[4]+=1\n                else:\n                    if batch is not None: out.append(['repeat']+batch)\n                    batch=[device,code,now,now,1]\n            else:\n                if batch is not None:\n                    out.append(['repeat']+batch)\n                    batch=None\n                out.append(['raw',kind,device,code,now])\n        if batch is not None: out.append(['repeat']+batch)\n        return out\n    return [run(c) for c in cases]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('repeat-coalescing scenario 0', solve([[]] * N), [[]] * N)\ncheck('repeat-coalescing scenario 1', solve([[['down', 'a', 'A', 10, False]]] * N), [[['raw', 'down', 'a', 'A', 10]]] * N)\ncheck('repeat-coalescing scenario 2', solve([[['down', 'a', 'A', 10, True], ['down', 'a', 'A', 12, True]]] * N), [[['repeat', 'a', 'A', 10, 12, 2]]] * N)\ncheck('repeat-coalescing scenario 3', solve([[['down', 'a', 'A', 10, True], ['down', 'b', 'A', 12, True]]] * N), [[['repeat', 'a', 'A', 10, 10, 1], ['repeat', 'b', 'A', 12, 12, 1]]] * N)\ncheck('repeat-coalescing scenario 4', solve([[['down', 'a', 'A', 10, True], ['down', 'a', 'B', 12, True]]] * N), [[['repeat', 'a', 'A', 10, 10, 1], ['repeat', 'a', 'B', 12, 12, 1]]] * N)\ncheck('repeat-coalescing scenario 5', solve([[['down', 'a', 'A', 10, True], ['up', 'a', 'A', 12, False], ['down', 'a', 'A', 14, True]]] * N), [[['repeat', 'a', 'A', 10, 10, 1], ['raw', 'up', 'a', 'A', 12], ['repeat', 'a', 'A', 14, 14, 1]]] * N)\ncheck('repeat-coalescing scenario 6', solve([[['up', 'a', 'A', 10, True]]] * N), [[['raw', 'up', 'a', 'A', 10]]] * N)\ncheck('repeat-coalescing scenario 7', solve([[['down', 'a', 'A', 10, True], ['text', 'a', 'A', 12, False]]] * N), [[['repeat', 'a', 'A', 10, 10, 1], ['raw', 'text', 'a', 'A', 12]]] * N)\ncheck('repeat-coalescing scenario 8', solve([[['down', 'a', 'A', 10, True], ['down', 'a', 'A', 12, False], ['down', 'a', 'A', 14, True]]] * N), [[['repeat', 'a', 'A', 10, 10, 1], ['raw', 'down', 'a', 'A', 12], ['repeat', 'a', 'A', 14, 14, 1]]] * N)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"f87e5892d5f30c2cf4572ebc9d0b187087480175a0e6084fce3466c98404e4ca","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(cases):\n    def run(c):\n        out=[]; batch=None\n        for kind,device,code,now,repeat in c:\n            eligible=kind=='down' and repeat\n            if eligible:\n                if batch is not None and batch[0]==device and batch[1]==code:\n                    batch[3]=now\n                    batch[4]+=1\n                else:\n                    if batch is not None: out.append(['repeat']+batch)\n                    batch=[device,code,now,now,1]\n            else:\n                if batch is not None:\n                    out.append(['repeat']+batch)\n                    batch=None\n                out.append(['raw',kind,device,code,now])\n        if batch is not None: out.append(['repeat']+batch)\n        return out\n    return [run(c) for c in cases]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('repeat-coalescing scenario 0', solve([[]] * N), [[]] * N)\ncheck('repeat-coalescing scenario 1', solve([[['down', 'a', 'A', 10, False]]] * N), [[['raw', 'down', 'a', 'A', 10]]] * N)\ncheck('repeat-coalescing scenario 2', solve([[['down', 'a', 'A', 10, True], ['down', 'a', 'A', 12, True]]] * N), [[['repeat', 'a', 'A', 10, 12, 2]]] * N)\ncheck('repeat-coalescing scenario 3', solve([[['down', 'a', 'A', 10, True], ['down', 'b', 'A', 12, True]]] * N), [[['repeat', 'a', 'A', 10, 10, 1], ['repeat', 'b', 'A', 12, 12, 1]]] * N)\ncheck('repeat-coalescing scenario 4', solve([[['down', 'a', 'A', 10, True], ['down', 'a', 'B', 12, True]]] * N), [[['repeat', 'a', 'A', 10, 10, 1], ['repeat', 'a', 'B', 12, 12, 1]]] * N)\ncheck('repeat-coalescing scenario 5', solve([[['down', 'a', 'A', 10, True], ['up', 'a', 'A', 12, False], ['down', 'a', 'A', 14, True]]] * N), [[['repeat', 'a', 'A', 10, 10, 1], ['raw', 'up', 'a', 'A', 12], ['repeat', 'a', 'A', 14, 14, 1]]] * N)\ncheck('repeat-coalescing scenario 6', solve([[['up', 'a', 'A', 10, True]]] * N), [[['raw', 'up', 'a', 'A', 10]]] * N)\ncheck('repeat-coalescing scenario 7', solve([[['down', 'a', 'A', 10, True], ['text', 'a', 'A', 12, False]]] * N), [[['repeat', 'a', 'A', 10, 10, 1], ['raw', 'text', 'a', 'A', 12]]] * N)\ncheck('repeat-coalescing scenario 8', solve([[['down', 'a', 'A', 10, True], ['down', 'a', 'A', 12, False], ['down', 'a', 'A', 14, True]]] * N), [[['repeat', 'a', 'A', 10, 10, 1], ['raw', 'down', 'a', 'A', 12], ['repeat', 'a', 'A', 14, 14, 1]]] * N)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"Offline stipulated event model, not a browser implementation or web standard conformance claim. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"s3-keyboard-interactions-repeat-coalescing-device-boundary","generated_at":"2026-09-29T14:42:04.696771+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Controlled keyboard event processing model for debugging application event logic.","repair":"Use the contract transition `batch[0]==device and batch[1]==code` at the device boundary fault site; preserve the other state transitions.","root_cause":"Repeat runs are merged across physical devices or key codes.","sha256":"c72ad309eac0cc22ec0ad69be33558c3d47d9394a9bbd66b4a02662d6fe6e261","title":"Adjacent keyboard repeat batch coalescing: Repeat runs are merged across physical devices or key codes · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":47.182,"exit_code":1,"observations":[{"actual":[[]],"check":"repeat-coalescing scenario 0","expected":[[]],"passed":true},{"actual":[[["raw","down","a","A",10]]],"check":"repeat-coalescing scenario 1","expected":[[["raw","down","a","A",10]]],"passed":true},{"actual":[[["repeat","a","A",10,12,2]]],"check":"repeat-coalescing scenario 2","expected":[[["repeat","a","A",10,12,2]]],"passed":true},{"actual":[[["repeat","a","A",10,10,1],["repeat","b","A",12,12,1]]],"check":"repeat-coalescing scenario 3","expected":[[["repeat","a","A",10,10,1],["repeat","b","A",12,12,1]]],"passed":true},{"actual":[[["repeat","a","A",10,12,2]]],"check":"repeat-coalescing scenario 4","expected":[[["repeat","a","A",10,10,1],["repeat","a","B",12,12,1]]],"passed":false},{"actual":[[["repeat","a","A",10,10,1],["raw","up","a","A",12],["repeat","a","A",14,14,1]]],"check":"repeat-coalescing scenario 5","expected":[[["repeat","a","A",10,10,1],["raw","up","a","A",12],["repeat","a","A",14,14,1]]],"passed":true},{"actual":[[["raw","up","a","A",10]]],"check":"repeat-coalescing scenario 6","expected":[[["raw","up","a","A",10]]],"passed":true},{"actual":[[["repeat","a","A",10,10,1],["raw","text","a","A",12]]],"check":"repeat-coalescing scenario 7","expected":[[["repeat","a","A",10,10,1],["raw","text","a","A",12]]],"passed":true},{"actual":[[["repeat","a","A",10,10,1],["raw","down","a","A",12],["repeat","a","A",14,14,1]]],"check":"repeat-coalescing scenario 8","expected":[[["repeat","a","A",10,10,1],["raw","down","a","A",12],["repeat","a","A",14,14,1]]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"repeat-coalescing scenario 0\", \"actual\": [[]], \"expected\": [[]], \"passed\": true}, {\"check\": \"repeat-coalescing scenario 1\", \"actual\": [[[\"raw\", \"down\", \"a\", \"A\", 10]]], \"expected\": [[[\"raw\", \"down\", \"a\", \"A\", 10]]], \"passed\": true}, {\"check\": \"repeat-coalescing scenario 2\", \"actual\": [[[\"repeat\", \"a\", \"A\", 10, 12, 2]]], \"expected\": [[[\"repeat\", \"a\", \"A\", 10, 12, 2]]], \"passed\": true}, {\"check\": \"repeat-coalescing scenario 3\", \"actual\": [[[\"repeat\", \"a\", \"A\", 10, 10, 1], [\"repeat\", \"b\", \"A\", 12, 12, 1]]], \"expected\": [[[\"repeat\", \"a\", \"A\", 10, 10, 1], [\"repeat\", \"b\", \"A\", 12, 12, 1]]], \"passed\": true}, {\"check\": \"repeat-coalescing scenario 4\", \"actual\": [[[\"repeat\", \"a\", \"A\", 10, 12, 2]]], \"expected\": [[[\"repeat\", \"a\", \"A\", 10, 10, 1], [\"repeat\", \"a\", \"B\", 12, 12, 1]]], \"passed\": false}, {\"check\": \"repeat-coalescing scenario 5\", \"actual\": [[[\"repeat\", \"a\", \"A\", 10, 10, 1], [\"raw\", \"up\", \"a\", \"A\", 12], [\"repeat\", \"a\", \"A\", 14, 14, 1]]], \"expected\": [[[\"repeat\", \"a\", \"A\", 10, 10, 1], [\"raw\", \"up\", \"a\", \"A\", 12], [\"repeat\", \"a\", \"A\", 14, 14, 1]]], \"passed\": true}, {\"check\": \"repeat-coalescing scenario 6\", \"actual\": [[[\"raw\", \"up\", \"a\", \"A\", 10]]], \"expected\": [[[\"raw\", \"up\", \"a\", \"A\", 10]]], \"passed\": true}, {\"check\": \"repeat-coalescing scenario 7\", \"actual\": [[[\"repeat\", \"a\", \"A\", 10, 10, 1], [\"raw\", \"text\", \"a\", \"A\", 12]]], \"expected\": [[[\"repeat\", \"a\", \"A\", 10, 10, 1], [\"raw\", \"text\", \"a\", \"A\", 12]]], \"passed\": true}, {\"check\": \"repeat-coalescing scenario 8\", \"actual\": [[[\"repeat\", \"a\", \"A\", 10, 10, 1], [\"raw\", \"down\", \"a\", \"A\", 12], [\"repeat\", \"a\", \"A\", 14, 14, 1]]], \"expected\": [[[\"repeat\", \"a\", \"A\", 10, 10, 1], [\"raw\", \"down\", \"a\", \"A\", 12], [\"repeat\", \"a\", \"A\", 14, 14, 1]]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":49.804,"exit_code":1,"observations":[{"actual":[[]],"check":"repeat-coalescing scenario 0","expected":[[]],"passed":true},{"actual":[[["raw","down","a","A",10]]],"check":"repeat-coalescing scenario 1","expected":[[["raw","down","a","A",10]]],"passed":true},{"actual":[[["repeat","a","A",10,12,2]]],"check":"repeat-coalescing scenario 2","expected":[[["repeat","a","A",10,12,2]]],"passed":true},{"actual":[[["repeat","a","A",10,12,2]]],"check":"repeat-coalescing scenario 3","expected":[[["repeat","a","A",10,10,1],["repeat","b","A",12,12,1]]],"passed":false},{"actual":[[["repeat","a","A",10,10,1],["repeat","a","B",12,12,1]]],"check":"repeat-coalescing scenario 4","expected":[[["repeat","a","A",10,10,1],["repeat","a","B",12,12,1]]],"passed":true},{"actual":[[["repeat","a","A",10,10,1],["raw","up","a","A",12],["repeat","a","A",14,14,1]]],"check":"repeat-coalescing scenario 5","expected":[[["repeat","a","A",10,10,1],["raw","up","a","A",12],["repeat","a","A",14,14,1]]],"passed":true},{"actual":[[["raw","up","a","A",10]]],"check":"repeat-coalescing scenario 6","expected":[[["raw","up","a","A",10]]],"passed":true},{"actual":[[["repeat","a","A",10,10,1],["raw","text","a","A",12]]],"check":"repeat-coalescing scenario 7","expected":[[["repeat","a","A",10,10,1],["raw","text","a","A",12]]],"passed":true},{"actual":[[["repeat","a","A",10,10,1],["raw","down","a","A",12],["repeat","a","A",14,14,1]]],"check":"repeat-coalescing scenario 8","expected":[[["repeat","a","A",10,10,1],["raw","down","a","A",12],["repeat","a","A",14,14,1]]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"repeat-coalescing scenario 0\", \"actual\": [[]], \"expected\": [[]], \"passed\": true}, {\"check\": \"repeat-coalescing scenario 1\", \"actual\": [[[\"raw\", \"down\", \"a\", \"A\", 10]]], \"expected\": [[[\"raw\", \"down\", \"a\", \"A\", 10]]], \"passed\": true}, {\"check\": \"repeat-coalescing scenario 2\", \"actual\": [[[\"repeat\", \"a\", \"A\", 10, 12, 2]]], \"expected\": [[[\"repeat\", \"a\", \"A\", 10, 12, 2]]], \"passed\": true}, {\"check\": \"repeat-coalescing scenario 3\", \"actual\": [[[\"repeat\", \"a\", \"A\", 10, 12, 2]]], \"expected\": [[[\"repeat\", \"a\", \"A\", 10, 10, 1], [\"repeat\", \"b\", \"A\", 12, 12, 1]]], \"passed\": false}, {\"check\": \"repeat-coalescing scenario 4\", \"actual\": [[[\"repeat\", \"a\", \"A\", 10, 10, 1], [\"repeat\", \"a\", \"B\", 12, 12, 1]]], \"expected\": [[[\"repeat\", \"a\", \"A\", 10, 10, 1], [\"repeat\", \"a\", \"B\", 12, 12, 1]]], \"passed\": true}, {\"check\": \"repeat-coalescing scenario 5\", \"actual\": [[[\"repeat\", \"a\", \"A\", 10, 10, 1], [\"raw\", \"up\", \"a\", \"A\", 12], [\"repeat\", \"a\", \"A\", 14, 14, 1]]], \"expected\": [[[\"repeat\", \"a\", \"A\", 10, 10, 1], [\"raw\", \"up\", \"a\", \"A\", 12], [\"repeat\", \"a\", \"A\", 14, 14, 1]]], \"passed\": true}, {\"check\": \"repeat-coalescing scenario 6\", \"actual\": [[[\"raw\", \"up\", \"a\", \"A\", 10]]], \"expected\": [[[\"raw\", \"up\", \"a\", \"A\", 10]]], \"passed\": true}, {\"check\": \"repeat-coalescing scenario 7\", \"actual\": [[[\"repeat\", \"a\", \"A\", 10, 10, 1], [\"raw\", \"text\", \"a\", \"A\", 12]]], \"expected\": [[[\"repeat\", \"a\", \"A\", 10, 10, 1], [\"raw\", \"text\", \"a\", \"A\", 12]]], \"passed\": true}, {\"check\": \"repeat-coalescing scenario 8\", \"actual\": [[[\"repeat\", \"a\", \"A\", 10, 10, 1], [\"raw\", \"down\", \"a\", \"A\", 12], [\"repeat\", \"a\", \"A\", 14, 14, 1]]], \"expected\": [[[\"repeat\", \"a\", \"A\", 10, 10, 1], [\"raw\", \"down\", \"a\", \"A\", 12], [\"repeat\", \"a\", \"A\", 14, 14, 1]]], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":45.995,"exit_code":0,"observations":[{"actual":[[]],"check":"repeat-coalescing scenario 0","expected":[[]],"passed":true},{"actual":[[["raw","down","a","A",10]]],"check":"repeat-coalescing scenario 1","expected":[[["raw","down","a","A",10]]],"passed":true},{"actual":[[["repeat","a","A",10,12,2]]],"check":"repeat-coalescing scenario 2","expected":[[["repeat","a","A",10,12,2]]],"passed":true},{"actual":[[["repeat","a","A",10,10,1],["repeat","b","A",12,12,1]]],"check":"repeat-coalescing scenario 3","expected":[[["repeat","a","A",10,10,1],["repeat","b","A",12,12,1]]],"passed":true},{"actual":[[["repeat","a","A",10,10,1],["repeat","a","B",12,12,1]]],"check":"repeat-coalescing scenario 4","expected":[[["repeat","a","A",10,10,1],["repeat","a","B",12,12,1]]],"passed":true},{"actual":[[["repeat","a","A",10,10,1],["raw","up","a","A",12],["repeat","a","A",14,14,1]]],"check":"repeat-coalescing scenario 5","expected":[[["repeat","a","A",10,10,1],["raw","up","a","A",12],["repeat","a","A",14,14,1]]],"passed":true},{"actual":[[["raw","up","a","A",10]]],"check":"repeat-coalescing scenario 6","expected":[[["raw","up","a","A",10]]],"passed":true},{"actual":[[["repeat","a","A",10,10,1],["raw","text","a","A",12]]],"check":"repeat-coalescing scenario 7","expected":[[["repeat","a","A",10,10,1],["raw","text","a","A",12]]],"passed":true},{"actual":[[["repeat","a","A",10,10,1],["raw","down","a","A",12],["repeat","a","A",14,14,1]]],"check":"repeat-coalescing scenario 8","expected":[[["repeat","a","A",10,10,1],["raw","down","a","A",12],["repeat","a","A",14,14,1]]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"repeat-coalescing scenario 0\", \"actual\": [[]], \"expected\": [[]], \"passed\": true}, {\"check\": \"repeat-coalescing scenario 1\", \"actual\": [[[\"raw\", \"down\", \"a\", \"A\", 10]]], \"expected\": [[[\"raw\", \"down\", \"a\", \"A\", 10]]], \"passed\": true}, {\"check\": \"repeat-coalescing scenario 2\", \"actual\": [[[\"repeat\", \"a\", \"A\", 10, 12, 2]]], \"expected\": [[[\"repeat\", \"a\", \"A\", 10, 12, 2]]], \"passed\": true}, {\"check\": \"repeat-coalescing scenario 3\", \"actual\": [[[\"repeat\", \"a\", \"A\", 10, 10, 1], [\"repeat\", \"b\", \"A\", 12, 12, 1]]], \"expected\": [[[\"repeat\", \"a\", \"A\", 10, 10, 1], [\"repeat\", \"b\", \"A\", 12, 12, 1]]], \"passed\": true}, {\"check\": \"repeat-coalescing scenario 4\", \"actual\": [[[\"repeat\", \"a\", \"A\", 10, 10, 1], [\"repeat\", \"a\", \"B\", 12, 12, 1]]], \"expected\": [[[\"repeat\", \"a\", \"A\", 10, 10, 1], [\"repeat\", \"a\", \"B\", 12, 12, 1]]], \"passed\": true}, {\"check\": \"repeat-coalescing scenario 5\", \"actual\": [[[\"repeat\", \"a\", \"A\", 10, 10, 1], [\"raw\", \"up\", \"a\", \"A\", 12], [\"repeat\", \"a\", \"A\", 14, 14, 1]]], \"expected\": [[[\"repeat\", \"a\", \"A\", 10, 10, 1], [\"raw\", \"up\", \"a\", \"A\", 12], [\"repeat\", \"a\", \"A\", 14, 14, 1]]], \"passed\": true}, {\"check\": \"repeat-coalescing scenario 6\", \"actual\": [[[\"raw\", \"up\", \"a\", \"A\", 10]]], \"expected\": [[[\"raw\", \"up\", \"a\", \"A\", 10]]], \"passed\": true}, {\"check\": \"repeat-coalescing scenario 7\", \"actual\": [[[\"repeat\", \"a\", \"A\", 10, 10, 1], [\"raw\", \"text\", \"a\", \"A\", 12]]], \"expected\": [[[\"repeat\", \"a\", \"A\", 10, 10, 1], [\"raw\", \"text\", \"a\", \"A\", 12]]], \"passed\": true}, {\"check\": \"repeat-coalescing scenario 8\", \"actual\": [[[\"repeat\", \"a\", \"A\", 10, 10, 1], [\"raw\", \"down\", \"a\", \"A\", 12], [\"repeat\", \"a\", \"A\", 14, 14, 1]]], \"expected\": [[[\"repeat\", \"a\", \"A\", 10, 10, 1], [\"raw\", \"down\", \"a\", \"A\", 12], [\"repeat\", \"a\", \"A\", 14, 14, 1]]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}