{"abstract":"An extension ending on a Saturday leaves the deadline on the Saturday.","category":"Legal deadline computation","checks":7,"contract":"Stipulated: the original deadline (rolled forward to an open day) may be extended by stipulations [signed, days] processed in order, without court order, up to 30 days in total across all stipulations. A stipulation is valid only if signed on or before the then-current deadline; it grants min(days, remaining cap), added to the current deadline, and the result is rolled forward to an open day (not weekend or listed holiday). Return [final deadline, total days granted].","evaluation_group":"w2-legal-deadline-computation-stipulated-extensions","failed_approach":"The partial repair `nxt if nxt.weekday() < 5 else roll(nxt)` rolls weekends but leaves a deadline on a weekday holiday.","family":"w2-legal-deadline-computation-stipulated-extensions-re-roll","id":"FA-77736","implementations":{"attempt":{"sha256":"f94f46659833a03ae6e53f5aedc1f7f600474bcd6ed83e62277ccdc6e3968c98","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport datetime as dt\nimport calendar\nN = 1\nobservations = []\ndef solve(original, stipulations, holidays):\n    hol = {dt.date.fromisoformat(x) for x in holidays}\n    def roll(d):\n        while d.weekday() >= 5 or d in hol:\n            d += dt.timedelta(days=1)\n        return d\n    base = roll(dt.date.fromisoformat(original))\n    cur = base\n    used = 0\n    for signed, days in stipulations:\n        s = dt.date.fromisoformat(signed)\n        if s > cur:\n            continue\n        grant = min(days, 30 - used)\n        if grant <= 0:\n            continue\n        used += grant\n        nxt = cur + dt.timedelta(days=grant)\n        cur = nxt if nxt.weekday() < 5 else roll(nxt)\n    return [cur.isoformat(), used]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: second stipulation after original',\n   ['2024-03-01',\n    [['2024-02-28', 10], ['2024-03-08', 10]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-03-21', 20]),\n  ('cap exceeded',\n   ['2024-04-01',\n    [['2024-03-30', 14], ['2024-04-10', 14], ['2024-04-20', 14]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-05-01', 30]),\n  ('signed on deadline day',\n   ['2024-04-01',\n    [['2024-04-01', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-08', 7]),\n  ('late stipulation',\n   ['2024-04-01',\n    [['2024-04-02', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-01', 0]),\n  ('extension to saturday',\n   ['2024-04-01',\n    [['2024-03-25', 5]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-08', 5]),\n  ('extension to holiday',\n   ['2024-06-12',\n    [['2024-06-10', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-06-20', 7]),\n  ('original on weekend',\n   ['2024-06-01',\n    [['2024-06-03', 3]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-06-06', 3])],\n [('signed on deadline day',\n   ['2024-04-01',\n    [['2024-04-01', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-08', 7]),\n  ('late stipulation',\n   ['2024-04-01',\n    [['2024-04-02', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-01', 0]),\n  ('extension to saturday',\n   ['2024-04-01',\n    [['2024-03-25', 5]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-08', 5]),\n  ('extension to holiday',\n   ['2024-06-12',\n    [['2024-06-10', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-06-20', 7]),\n  ('original on weekend',\n   ['2024-06-01',\n    [['2024-06-03', 3]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-06-06', 3]),\n  ('exact cap',\n   ['2024-01-08',\n    [['2024-01-05', 20], ['2024-01-20', 10], ['2024-02-01', 5]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-02-08', 30]),\n  ('single thirty',\n   ['2024-08-01',\n    [['2024-07-01', 30]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-09-03', 30])],\n [('extension to saturday',\n   ['2024-04-01',\n    [['2024-03-25', 5]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-08', 5]),\n  ('extension to holiday',\n   ['2024-06-12',\n    [['2024-06-10', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-06-20', 7]),\n  ('original on weekend',\n   ['2024-06-01',\n    [['2024-06-03', 3]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-06-06', 3]),\n  ('exact cap',\n   ['2024-01-08',\n    [['2024-01-05', 20], ['2024-01-20', 10], ['2024-02-01', 5]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-02-08', 30]),\n  ('single thirty',\n   ['2024-08-01',\n    [['2024-07-01', 30]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-09-03', 30]),\n  ('three stacked short',\n   ['2024-09-03',\n    [['2024-09-01', 3], ['2024-09-05', 4], ['2024-09-09', 2]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-09-12', 9]),\n  ('regression: second stipulation after original',\n   ['2024-03-01',\n    [['2024-02-28', 10], ['2024-03-08', 10]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-03-21', 20])],\n [('original on weekend',\n   ['2024-06-01',\n    [['2024-06-03', 3]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-06-06', 3]),\n  ('exact cap',\n   ['2024-01-08',\n    [['2024-01-05', 20], ['2024-01-20', 10], ['2024-02-01', 5]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-02-08', 30]),\n  ('single thirty',\n   ['2024-08-01',\n    [['2024-07-01', 30]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-09-03', 30]),\n  ('three stacked short',\n   ['2024-09-03',\n    [['2024-09-01', 3], ['2024-09-05', 4], ['2024-09-09', 2]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-09-12', 9]),\n  ('regression: second stipulation after original',\n   ['2024-03-01',\n    [['2024-02-28', 10], ['2024-03-08', 10]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-03-21', 20]),\n  ('cap exceeded',\n   ['2024-04-01',\n    [['2024-03-30', 14], ['2024-04-10', 14], ['2024-04-20', 14]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-05-01', 30]),\n  ('signed on deadline day',\n   ['2024-04-01',\n    [['2024-04-01', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-08', 7]),\n  ('extension to holiday',\n   ['2024-06-12',\n    [['2024-06-10', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-06-20', 7])],\n [('single thirty',\n   ['2024-08-01',\n    [['2024-07-01', 30]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-09-03', 30]),\n  ('three stacked short',\n   ['2024-09-03',\n    [['2024-09-01', 3], ['2024-09-05', 4], ['2024-09-09', 2]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-09-12', 9]),\n  ('regression: second stipulation after original',\n   ['2024-03-01',\n    [['2024-02-28', 10], ['2024-03-08', 10]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-03-21', 20]),\n  ('cap exceeded',\n   ['2024-04-01',\n    [['2024-03-30', 14], ['2024-04-10', 14], ['2024-04-20', 14]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-05-01', 30]),\n  ('signed on deadline day',\n   ['2024-04-01',\n    [['2024-04-01', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-08', 7]),\n  ('late stipulation',\n   ['2024-04-01',\n    [['2024-04-02', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-01', 0]),\n  ('extension to saturday',\n   ['2024-04-01',\n    [['2024-03-25', 5]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-08', 5]),\n  ('extension to holiday',\n   ['2024-06-12',\n    [['2024-06-10', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-06-20', 7])]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\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":"8f9110ced4d47cd6694713056dc5078cfe166edea767b4d69bb39061dcdcc215","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport datetime as dt\nimport calendar\nN = 1\nobservations = []\ndef solve(original, stipulations, holidays):\n    hol = {dt.date.fromisoformat(x) for x in holidays}\n    def roll(d):\n        while d.weekday() >= 5 or d in hol:\n            d += dt.timedelta(days=1)\n        return d\n    base = roll(dt.date.fromisoformat(original))\n    cur = base\n    used = 0\n    for signed, days in stipulations:\n        s = dt.date.fromisoformat(signed)\n        if s > cur:\n            continue\n        grant = min(days, 30 - used)\n        if grant <= 0:\n            continue\n        used += grant\n        nxt = cur + dt.timedelta(days=grant)\n        cur = nxt\n    return [cur.isoformat(), used]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: second stipulation after original',\n   ['2024-03-01',\n    [['2024-02-28', 10], ['2024-03-08', 10]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-03-21', 20]),\n  ('cap exceeded',\n   ['2024-04-01',\n    [['2024-03-30', 14], ['2024-04-10', 14], ['2024-04-20', 14]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-05-01', 30]),\n  ('signed on deadline day',\n   ['2024-04-01',\n    [['2024-04-01', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-08', 7]),\n  ('late stipulation',\n   ['2024-04-01',\n    [['2024-04-02', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-01', 0]),\n  ('extension to saturday',\n   ['2024-04-01',\n    [['2024-03-25', 5]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-08', 5]),\n  ('extension to holiday',\n   ['2024-06-12',\n    [['2024-06-10', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-06-20', 7]),\n  ('original on weekend',\n   ['2024-06-01',\n    [['2024-06-03', 3]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-06-06', 3])],\n [('signed on deadline day',\n   ['2024-04-01',\n    [['2024-04-01', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-08', 7]),\n  ('late stipulation',\n   ['2024-04-01',\n    [['2024-04-02', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-01', 0]),\n  ('extension to saturday',\n   ['2024-04-01',\n    [['2024-03-25', 5]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-08', 5]),\n  ('extension to holiday',\n   ['2024-06-12',\n    [['2024-06-10', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-06-20', 7]),\n  ('original on weekend',\n   ['2024-06-01',\n    [['2024-06-03', 3]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-06-06', 3]),\n  ('exact cap',\n   ['2024-01-08',\n    [['2024-01-05', 20], ['2024-01-20', 10], ['2024-02-01', 5]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-02-08', 30]),\n  ('single thirty',\n   ['2024-08-01',\n    [['2024-07-01', 30]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-09-03', 30])],\n [('extension to saturday',\n   ['2024-04-01',\n    [['2024-03-25', 5]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-08', 5]),\n  ('extension to holiday',\n   ['2024-06-12',\n    [['2024-06-10', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-06-20', 7]),\n  ('original on weekend',\n   ['2024-06-01',\n    [['2024-06-03', 3]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-06-06', 3]),\n  ('exact cap',\n   ['2024-01-08',\n    [['2024-01-05', 20], ['2024-01-20', 10], ['2024-02-01', 5]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-02-08', 30]),\n  ('single thirty',\n   ['2024-08-01',\n    [['2024-07-01', 30]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-09-03', 30]),\n  ('three stacked short',\n   ['2024-09-03',\n    [['2024-09-01', 3], ['2024-09-05', 4], ['2024-09-09', 2]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-09-12', 9]),\n  ('regression: second stipulation after original',\n   ['2024-03-01',\n    [['2024-02-28', 10], ['2024-03-08', 10]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-03-21', 20])],\n [('original on weekend',\n   ['2024-06-01',\n    [['2024-06-03', 3]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-06-06', 3]),\n  ('exact cap',\n   ['2024-01-08',\n    [['2024-01-05', 20], ['2024-01-20', 10], ['2024-02-01', 5]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-02-08', 30]),\n  ('single thirty',\n   ['2024-08-01',\n    [['2024-07-01', 30]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-09-03', 30]),\n  ('three stacked short',\n   ['2024-09-03',\n    [['2024-09-01', 3], ['2024-09-05', 4], ['2024-09-09', 2]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-09-12', 9]),\n  ('regression: second stipulation after original',\n   ['2024-03-01',\n    [['2024-02-28', 10], ['2024-03-08', 10]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-03-21', 20]),\n  ('cap exceeded',\n   ['2024-04-01',\n    [['2024-03-30', 14], ['2024-04-10', 14], ['2024-04-20', 14]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-05-01', 30]),\n  ('signed on deadline day',\n   ['2024-04-01',\n    [['2024-04-01', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-08', 7]),\n  ('extension to holiday',\n   ['2024-06-12',\n    [['2024-06-10', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-06-20', 7])],\n [('single thirty',\n   ['2024-08-01',\n    [['2024-07-01', 30]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-09-03', 30]),\n  ('three stacked short',\n   ['2024-09-03',\n    [['2024-09-01', 3], ['2024-09-05', 4], ['2024-09-09', 2]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-09-12', 9]),\n  ('regression: second stipulation after original',\n   ['2024-03-01',\n    [['2024-02-28', 10], ['2024-03-08', 10]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-03-21', 20]),\n  ('cap exceeded',\n   ['2024-04-01',\n    [['2024-03-30', 14], ['2024-04-10', 14], ['2024-04-20', 14]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-05-01', 30]),\n  ('signed on deadline day',\n   ['2024-04-01',\n    [['2024-04-01', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-08', 7]),\n  ('late stipulation',\n   ['2024-04-01',\n    [['2024-04-02', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-01', 0]),\n  ('extension to saturday',\n   ['2024-04-01',\n    [['2024-03-25', 5]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-08', 5]),\n  ('extension to holiday',\n   ['2024-06-12',\n    [['2024-06-10', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-06-20', 7])]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\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":"7d22373aa668b1a24931037f165f276fb93c8c98a3581a3d2d9b0212daaffd8a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport datetime as dt\nimport calendar\nN = 1\nobservations = []\ndef solve(original, stipulations, holidays):\n    hol = {dt.date.fromisoformat(x) for x in holidays}\n    def roll(d):\n        while d.weekday() >= 5 or d in hol:\n            d += dt.timedelta(days=1)\n        return d\n    base = roll(dt.date.fromisoformat(original))\n    cur = base\n    used = 0\n    for signed, days in stipulations:\n        s = dt.date.fromisoformat(signed)\n        if s > cur:\n            continue\n        grant = min(days, 30 - used)\n        if grant <= 0:\n            continue\n        used += grant\n        nxt = cur + dt.timedelta(days=grant)\n        cur = roll(nxt)\n    return [cur.isoformat(), used]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: second stipulation after original',\n   ['2024-03-01',\n    [['2024-02-28', 10], ['2024-03-08', 10]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-03-21', 20]),\n  ('cap exceeded',\n   ['2024-04-01',\n    [['2024-03-30', 14], ['2024-04-10', 14], ['2024-04-20', 14]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-05-01', 30]),\n  ('signed on deadline day',\n   ['2024-04-01',\n    [['2024-04-01', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-08', 7]),\n  ('late stipulation',\n   ['2024-04-01',\n    [['2024-04-02', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-01', 0]),\n  ('extension to saturday',\n   ['2024-04-01',\n    [['2024-03-25', 5]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-08', 5]),\n  ('extension to holiday',\n   ['2024-06-12',\n    [['2024-06-10', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-06-20', 7]),\n  ('original on weekend',\n   ['2024-06-01',\n    [['2024-06-03', 3]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-06-06', 3])],\n [('signed on deadline day',\n   ['2024-04-01',\n    [['2024-04-01', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-08', 7]),\n  ('late stipulation',\n   ['2024-04-01',\n    [['2024-04-02', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-01', 0]),\n  ('extension to saturday',\n   ['2024-04-01',\n    [['2024-03-25', 5]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-08', 5]),\n  ('extension to holiday',\n   ['2024-06-12',\n    [['2024-06-10', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-06-20', 7]),\n  ('original on weekend',\n   ['2024-06-01',\n    [['2024-06-03', 3]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-06-06', 3]),\n  ('exact cap',\n   ['2024-01-08',\n    [['2024-01-05', 20], ['2024-01-20', 10], ['2024-02-01', 5]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-02-08', 30]),\n  ('single thirty',\n   ['2024-08-01',\n    [['2024-07-01', 30]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-09-03', 30])],\n [('extension to saturday',\n   ['2024-04-01',\n    [['2024-03-25', 5]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-08', 5]),\n  ('extension to holiday',\n   ['2024-06-12',\n    [['2024-06-10', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-06-20', 7]),\n  ('original on weekend',\n   ['2024-06-01',\n    [['2024-06-03', 3]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-06-06', 3]),\n  ('exact cap',\n   ['2024-01-08',\n    [['2024-01-05', 20], ['2024-01-20', 10], ['2024-02-01', 5]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-02-08', 30]),\n  ('single thirty',\n   ['2024-08-01',\n    [['2024-07-01', 30]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-09-03', 30]),\n  ('three stacked short',\n   ['2024-09-03',\n    [['2024-09-01', 3], ['2024-09-05', 4], ['2024-09-09', 2]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-09-12', 9]),\n  ('regression: second stipulation after original',\n   ['2024-03-01',\n    [['2024-02-28', 10], ['2024-03-08', 10]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-03-21', 20])],\n [('original on weekend',\n   ['2024-06-01',\n    [['2024-06-03', 3]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-06-06', 3]),\n  ('exact cap',\n   ['2024-01-08',\n    [['2024-01-05', 20], ['2024-01-20', 10], ['2024-02-01', 5]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-02-08', 30]),\n  ('single thirty',\n   ['2024-08-01',\n    [['2024-07-01', 30]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-09-03', 30]),\n  ('three stacked short',\n   ['2024-09-03',\n    [['2024-09-01', 3], ['2024-09-05', 4], ['2024-09-09', 2]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-09-12', 9]),\n  ('regression: second stipulation after original',\n   ['2024-03-01',\n    [['2024-02-28', 10], ['2024-03-08', 10]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-03-21', 20]),\n  ('cap exceeded',\n   ['2024-04-01',\n    [['2024-03-30', 14], ['2024-04-10', 14], ['2024-04-20', 14]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-05-01', 30]),\n  ('signed on deadline day',\n   ['2024-04-01',\n    [['2024-04-01', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-08', 7]),\n  ('extension to holiday',\n   ['2024-06-12',\n    [['2024-06-10', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-06-20', 7])],\n [('single thirty',\n   ['2024-08-01',\n    [['2024-07-01', 30]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-09-03', 30]),\n  ('three stacked short',\n   ['2024-09-03',\n    [['2024-09-01', 3], ['2024-09-05', 4], ['2024-09-09', 2]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-09-12', 9]),\n  ('regression: second stipulation after original',\n   ['2024-03-01',\n    [['2024-02-28', 10], ['2024-03-08', 10]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-03-21', 20]),\n  ('cap exceeded',\n   ['2024-04-01',\n    [['2024-03-30', 14], ['2024-04-10', 14], ['2024-04-20', 14]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-05-01', 30]),\n  ('signed on deadline day',\n   ['2024-04-01',\n    [['2024-04-01', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-08', 7]),\n  ('late stipulation',\n   ['2024-04-01',\n    [['2024-04-02', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-01', 0]),\n  ('extension to saturday',\n   ['2024-04-01',\n    [['2024-03-25', 5]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-04-08', 5]),\n  ('extension to holiday',\n   ['2024-06-12',\n    [['2024-06-10', 7]],\n    ['2024-01-01',\n     '2024-01-15',\n     '2024-02-19',\n     '2024-05-27',\n     '2024-06-19',\n     '2024-07-04',\n     '2024-09-02',\n     '2024-10-14',\n     '2024-11-11',\n     '2024-11-28',\n     '2024-12-25']],\n   ['2024-06-20', 7])]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\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":"Stipulated toy deadline rules evaluated offline on explicit fixtures. The contract is inspired by common court-rule structures but is not legal advice and makes no claim to reproduce any jurisdiction's rules. 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":"w2-legal-deadline-computation-stipulated-extensions-re-roll","generated_at":"2026-09-29T14:49:28.587978+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Docketing systems compute filing and response deadlines from trigger events; a wrong date can forfeit a right.","repair":"At the re roll decision use `roll(nxt)`, leaving the other decision sites of the model unchanged.","root_cause":"The extended deadline is not moved off a closed day.","sha256":"0aea6388232fc71903f3d30ebda58cd41d710f1ac37b1be0d88ae374fb806777","title":"Stacking stipulated extensions under a cumulative cap: re roll · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":48.787,"exit_code":1,"observations":[{"actual":["2024-03-21",20],"check":"regression: second stipulation after original","expected":["2024-03-21",20],"passed":true},{"actual":["2024-05-01",30],"check":"cap exceeded","expected":["2024-05-01",30],"passed":true},{"actual":["2024-04-08",7],"check":"signed on deadline day","expected":["2024-04-08",7],"passed":true},{"actual":["2024-04-01",0],"check":"late stipulation","expected":["2024-04-01",0],"passed":true},{"actual":["2024-04-08",5],"check":"extension to saturday","expected":["2024-04-08",5],"passed":true},{"actual":["2024-06-19",7],"check":"extension to holiday","expected":["2024-06-20",7],"passed":false},{"actual":["2024-06-06",3],"check":"original on weekend","expected":["2024-06-06",3],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: second stipulation after original\", \"actual\": [\"2024-03-21\", 20], \"expected\": [\"2024-03-21\", 20], \"passed\": true}, {\"check\": \"cap exceeded\", \"actual\": [\"2024-05-01\", 30], \"expected\": [\"2024-05-01\", 30], \"passed\": true}, {\"check\": \"signed on deadline day\", \"actual\": [\"2024-04-08\", 7], \"expected\": [\"2024-04-08\", 7], \"passed\": true}, {\"check\": \"late stipulation\", \"actual\": [\"2024-04-01\", 0], \"expected\": [\"2024-04-01\", 0], \"passed\": true}, {\"check\": \"extension to saturday\", \"actual\": [\"2024-04-08\", 5], \"expected\": [\"2024-04-08\", 5], \"passed\": true}, {\"check\": \"extension to holiday\", \"actual\": [\"2024-06-19\", 7], \"expected\": [\"2024-06-20\", 7], \"passed\": false}, {\"check\": \"original on weekend\", \"actual\": [\"2024-06-06\", 3], \"expected\": [\"2024-06-06\", 3], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":46.79,"exit_code":1,"observations":[{"actual":["2024-03-21",20],"check":"regression: second stipulation after original","expected":["2024-03-21",20],"passed":true},{"actual":["2024-05-01",30],"check":"cap exceeded","expected":["2024-05-01",30],"passed":true},{"actual":["2024-04-08",7],"check":"signed on deadline day","expected":["2024-04-08",7],"passed":true},{"actual":["2024-04-01",0],"check":"late stipulation","expected":["2024-04-01",0],"passed":true},{"actual":["2024-04-06",5],"check":"extension to saturday","expected":["2024-04-08",5],"passed":false},{"actual":["2024-06-19",7],"check":"extension to holiday","expected":["2024-06-20",7],"passed":false},{"actual":["2024-06-06",3],"check":"original on weekend","expected":["2024-06-06",3],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: second stipulation after original\", \"actual\": [\"2024-03-21\", 20], \"expected\": [\"2024-03-21\", 20], \"passed\": true}, {\"check\": \"cap exceeded\", \"actual\": [\"2024-05-01\", 30], \"expected\": [\"2024-05-01\", 30], \"passed\": true}, {\"check\": \"signed on deadline day\", \"actual\": [\"2024-04-08\", 7], \"expected\": [\"2024-04-08\", 7], \"passed\": true}, {\"check\": \"late stipulation\", \"actual\": [\"2024-04-01\", 0], \"expected\": [\"2024-04-01\", 0], \"passed\": true}, {\"check\": \"extension to saturday\", \"actual\": [\"2024-04-06\", 5], \"expected\": [\"2024-04-08\", 5], \"passed\": false}, {\"check\": \"extension to holiday\", \"actual\": [\"2024-06-19\", 7], \"expected\": [\"2024-06-20\", 7], \"passed\": false}, {\"check\": \"original on weekend\", \"actual\": [\"2024-06-06\", 3], \"expected\": [\"2024-06-06\", 3], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":47.429,"exit_code":0,"observations":[{"actual":["2024-03-21",20],"check":"regression: second stipulation after original","expected":["2024-03-21",20],"passed":true},{"actual":["2024-05-01",30],"check":"cap exceeded","expected":["2024-05-01",30],"passed":true},{"actual":["2024-04-08",7],"check":"signed on deadline day","expected":["2024-04-08",7],"passed":true},{"actual":["2024-04-01",0],"check":"late stipulation","expected":["2024-04-01",0],"passed":true},{"actual":["2024-04-08",5],"check":"extension to saturday","expected":["2024-04-08",5],"passed":true},{"actual":["2024-06-20",7],"check":"extension to holiday","expected":["2024-06-20",7],"passed":true},{"actual":["2024-06-06",3],"check":"original on weekend","expected":["2024-06-06",3],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: second stipulation after original\", \"actual\": [\"2024-03-21\", 20], \"expected\": [\"2024-03-21\", 20], \"passed\": true}, {\"check\": \"cap exceeded\", \"actual\": [\"2024-05-01\", 30], \"expected\": [\"2024-05-01\", 30], \"passed\": true}, {\"check\": \"signed on deadline day\", \"actual\": [\"2024-04-08\", 7], \"expected\": [\"2024-04-08\", 7], \"passed\": true}, {\"check\": \"late stipulation\", \"actual\": [\"2024-04-01\", 0], \"expected\": [\"2024-04-01\", 0], \"passed\": true}, {\"check\": \"extension to saturday\", \"actual\": [\"2024-04-08\", 5], \"expected\": [\"2024-04-08\", 5], \"passed\": true}, {\"check\": \"extension to holiday\", \"actual\": [\"2024-06-20\", 7], \"expected\": [\"2024-06-20\", 7], \"passed\": true}, {\"check\": \"original on weekend\", \"actual\": [\"2024-06-06\", 3], \"expected\": [\"2024-06-06\", 3], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}