)]}'
{
  "log": [
    {
      "commit": "24e1a6c631fba3b83ace7192748af058aa6bc450",
      "tree": "a513408ba1a8dbb3ad899efd9031e64f4ade4ba8",
      "parents": [
        "39ebacbf891641ec8c31016fbb9b71cfb9c43cae"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jul 30 10:07:31 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jul 30 10:07:31 2026 +0000"
      },
      "message": "Updates for the next release\n"
    },
    {
      "commit": "39ebacbf891641ec8c31016fbb9b71cfb9c43cae",
      "tree": "facaa3def35ddf2f26da2275fe783a833b4dc360",
      "parents": [
        "eaddfa7b663ae6542bb8b4c6dfb2daa6f4fa5f09"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jul 30 09:36:14 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jul 30 09:36:14 2026 +0000"
      },
      "message": "Updates for the next release\n"
    },
    {
      "commit": "eaddfa7b663ae6542bb8b4c6dfb2daa6f4fa5f09",
      "tree": "8d2a716e5d028c1b2430125defe8e96f4c8265a5",
      "parents": [
        "35869bbff94c6695a498cb7757b79bf31ee7c28e",
        "a6ebbfeddbef69de7a622920f3d70c7d3d97c54e"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jul 30 09:34:58 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jul 30 09:34:58 2026 +0000"
      },
      "message": "Merge branch \u0027release\u0027\n"
    },
    {
      "commit": "a6ebbfeddbef69de7a622920f3d70c7d3d97c54e",
      "tree": "295c81cb73b4c13cb231397a9064bdb0d3f820cc",
      "parents": [
        "dc8f6c832a30f524bf12a5ae7ab013e4ad7c088f"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jul 30 09:34:58 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jul 30 09:34:58 2026 +0000"
      },
      "message": "Bump to next development version\n"
    },
    {
      "commit": "35869bbff94c6695a498cb7757b79bf31ee7c28e",
      "tree": "a7c8ee18268933a5018b71e0e6a1496cffecabfd",
      "parents": [
        "8ab43c06c58a46985f73ba1031e5bde0733b1062"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 29 08:13:47 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 29 08:13:47 2026 -0400"
      },
      "message": "Bump ossf/scorecard-action from 2.4.3 to 2.4.4.\n"
    },
    {
      "commit": "8ab43c06c58a46985f73ba1031e5bde0733b1062",
      "tree": "0486537bc5361bdf5fcd6ed2a121346c935acf9b",
      "parents": [
        "8f3a144da76b45dfa8c403cf353986a832a78e96"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 29 07:48:46 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 29 07:48:46 2026 -0400"
      },
      "message": "Bump GH CI actions/checkout from 7.0.0 to 7.0.1\n"
    },
    {
      "commit": "8f3a144da76b45dfa8c403cf353986a832a78e96",
      "tree": "f1a59d0b2d6118711ee7c94b993a6422edea7199",
      "parents": [
        "8203c1c5bb4342e2fbf258556cac4826eae7ca11"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jul 28 14:53:33 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jul 28 14:53:33 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.37.1 to 4.37.3\n"
    },
    {
      "commit": "dc8f6c832a30f524bf12a5ae7ab013e4ad7c088f",
      "tree": "3edcb69292177c70c2a29d71f2719110445e5ee5",
      "parents": [
        "8203c1c5bb4342e2fbf258556cac4826eae7ca11"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jul 27 00:11:20 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jul 27 00:11:20 2026 +0000"
      },
      "message": "Prepare for the release candidate 1.22.1 RC1\n"
    },
    {
      "commit": "8203c1c5bb4342e2fbf258556cac4826eae7ca11",
      "tree": "a651c8f14a4b41a93549116974b892276e11d805",
      "parents": [
        "5647fe2a66b3e74f044f414ad10d92407ede9396"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jul 27 00:09:15 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jul 27 00:09:15 2026 +0000"
      },
      "message": "Prepare for the next release candidate\n"
    },
    {
      "commit": "5647fe2a66b3e74f044f414ad10d92407ede9396",
      "tree": "d1c00b409276775a6d37ce101a2e03d145e20d38",
      "parents": [
        "00c27a9c0636f15a0ba1d0bdc1f00fb8d9cee0fd"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jul 26 16:14:01 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jul 26 16:14:01 2026 -0400"
      },
      "message": "StringEncoderComparator.StringEncoderComparator(StringEncoder) now fails\nfast on null input.\n"
    },
    {
      "commit": "00c27a9c0636f15a0ba1d0bdc1f00fb8d9cee0fd",
      "tree": "0895e9ee71c89f8c3b91d5a1c57ff32b6149c292",
      "parents": [
        "568f2d7d7cf24ff0074eec29e21868ce9fe24236"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jul 26 16:07:10 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jul 26 16:07:10 2026 -0400"
      },
      "message": "Reduce vertical whitespace\n"
    },
    {
      "commit": "568f2d7d7cf24ff0074eec29e21868ce9fe24236",
      "tree": "558606ba10d468a12b2ec41f5767bef2511c2b7e",
      "parents": [
        "316fb15f3aa1e810a27fcc858d7c0e7ba0a4d724"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jul 26 15:05:20 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jul 26 15:05:20 2026 -0400"
      },
      "message": "Remove unused method\n"
    },
    {
      "commit": "316fb15f3aa1e810a27fcc858d7c0e7ba0a4d724",
      "tree": "1bbf30dac80c188ba3c52430673fb4d762400971",
      "parents": [
        "bf6b543c1d49bf36d9ee10de1a1472dc5d677b10"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jul 26 15:03:01 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jul 26 15:03:01 2026 -0400"
      },
      "message": "Remove unused method\n"
    },
    {
      "commit": "bf6b543c1d49bf36d9ee10de1a1472dc5d677b10",
      "tree": "292b1d922b34de160d4b63ae7300b4e12106000d",
      "parents": [
        "e14cdfe55f4837b63daca367374ce996ad87fc5a"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 25 09:49:07 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 25 09:49:07 2026 -0400"
      },
      "message": "Bump actions/checkout from 7.0.0 to 7.0.1\n"
    },
    {
      "commit": "e14cdfe55f4837b63daca367374ce996ad87fc5a",
      "tree": "7cf1426d9b40a3f5fca77952a191ddd4f2c98892",
      "parents": [
        "3351e63155fa41fbfcb0744efa960adce1529798"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 25 08:34:50 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 25 08:34:50 2026 -0400"
      },
      "message": "Extract redundant code.\n"
    },
    {
      "commit": "3351e63155fa41fbfcb0744efa960adce1529798",
      "tree": "7f3e0d88daecf6baa96ac647412ced01b85e8f58",
      "parents": [
        "f22dab7ea52e8bd07dfa84a6f37ce915d1536b1c"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 22 10:53:02 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 22 10:53:02 2026 -0400"
      },
      "message": "Add messages when throwing NullPointerException.\n"
    },
    {
      "commit": "f22dab7ea52e8bd07dfa84a6f37ce915d1536b1c",
      "tree": "8ab1491bf3d7d8bcd4fab856cd865a5c3804c4a1",
      "parents": [
        "581c7aa1fd0cd1f20b4846506adce6f8547ac0f2"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 22 10:46:13 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 22 10:46:13 2026 -0400"
      },
      "message": "Update SCM tag\n"
    },
    {
      "commit": "581c7aa1fd0cd1f20b4846506adce6f8547ac0f2",
      "tree": "1f6ec61fb774c80379a6839ca322d7999da48ee3",
      "parents": [
        "a05e928564110cabf4c1f77bc943ce712a7a9fee"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jul 21 15:43:06 2026 -0700"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jul 21 15:43:06 2026 -0700"
      },
      "message": "Bump org.apache.commons:commons-parent from 102 to 103.\n"
    },
    {
      "commit": "a05e928564110cabf4c1f77bc943ce712a7a9fee",
      "tree": "47b964494c61337e90b5b319941ae51eef0db918",
      "parents": [
        "3ff7a413f74930210ab20af8aba62e8f3b661757"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jul 21 13:45:07 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jul 21 13:45:07 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.37.0 to 4.37.1\n"
    },
    {
      "commit": "3ff7a413f74930210ab20af8aba62e8f3b661757",
      "tree": "34df3b17778a220f349f7ab89c3d4e003796c967",
      "parents": [
        "907bd78908d1c13e34ebfffae36a63286a9b0a29"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jul 21 11:45:13 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jul 21 11:45:13 2026 -0400"
      },
      "message": "Bump actions/setup-java from 5.5.0 to 5.6.0\n"
    },
    {
      "commit": "907bd78908d1c13e34ebfffae36a63286a9b0a29",
      "tree": "fb0334bbf2ff27df7bbfd7473c0beb667141d25f",
      "parents": [
        "ed167f2920a18288d5be671b7e080b05e27953a0"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 18 14:28:16 2026 -0700"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 18 14:28:16 2026 -0700"
      },
      "message": "Sort members."
    },
    {
      "commit": "ed167f2920a18288d5be671b7e080b05e27953a0",
      "tree": "8d8afc20fed3f2b9464c190caff94b718edc7a16",
      "parents": [
        "8869f4ff6ad16d4bf665dfa292fa9b4531836cb2"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jul 13 13:49:15 2026 -0700"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jul 13 13:49:15 2026 -0700"
      },
      "message": "Bump actions/setup-java from 5.4.0 to 5.5.0\n"
    },
    {
      "commit": "8869f4ff6ad16d4bf665dfa292fa9b4531836cb2",
      "tree": "0c31deefdd214dfb0a2c36ee6a140a378ccb20c8",
      "parents": [
        "6e5c9b868953a9b5127a894b52baf0a1b8df1542"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 11 11:21:46 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 11 11:21:46 2026 -0400"
      },
      "message": "Javadoc\n"
    },
    {
      "commit": "6e5c9b868953a9b5127a894b52baf0a1b8df1542",
      "tree": "cf7c6df01b453c51246ca3f7d3f8f216b0fd0eff",
      "parents": [
        "67914a649330c28146f45581b25461ce2d09eb49"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 11 09:08:17 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 11 09:08:17 2026 -0400"
      },
      "message": "Javadoc\n"
    },
    {
      "commit": "67914a649330c28146f45581b25461ce2d09eb49",
      "tree": "0a4fad186f5b087576980978c64b19b29760159c",
      "parents": [
        "d66942f84ac04463bfa45e1c19fdbc46b370aacb"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 11 08:12:40 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Jul 11 08:12:40 2026 -0400"
      },
      "message": "Javadoc\n\n- Import once instead of using FQCN over and over.\n- Better wording\n- Weird formatting in some @param not needed\n- Reduce vertical whitespace\n- Fix type references in @param tags\n- Fix Checkstyle"
    },
    {
      "commit": "d66942f84ac04463bfa45e1c19fdbc46b370aacb",
      "tree": "ee536463d85461c0ed3ee496095f0180cd857716",
      "parents": [
        "b8b0e7eb1143487a89f7deb0db7b5475d99336e2"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Jul 10 09:08:09 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Jul 10 09:08:09 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.36.3 to 4.37.0\n"
    },
    {
      "commit": "b8b0e7eb1143487a89f7deb0db7b5475d99336e2",
      "tree": "8725071f09d8230ffa2e29d5594df7473c5a09f1",
      "parents": [
        "868af3848cd8807a21a3d6d3c1831feb9d9d74d4"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jul 09 12:38:51 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jul 09 12:38:51 2026 -0400"
      },
      "message": "Constant already in scope, use final\n"
    },
    {
      "commit": "868af3848cd8807a21a3d6d3c1831feb9d9d74d4",
      "tree": "8d284de81b6cc9f56f697525eb6fce33011d2a97",
      "parents": [
        "2801f99b930aa56c7db5e0741da823adc003d831"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jul 09 12:22:49 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jul 09 12:22:49 2026 -0400"
      },
      "message": "Internal refactoring\n"
    },
    {
      "commit": "2801f99b930aa56c7db5e0741da823adc003d831",
      "tree": "28cc6c8bc647b680bd92ab1e49bf7d79cee7e7e0",
      "parents": [
        "819d5687e4e574c04be22a4fa2cc238519a5bdb9"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jul 09 11:38:17 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jul 09 11:38:17 2026 -0400"
      },
      "message": "Refactor internal duplication\n"
    },
    {
      "commit": "819d5687e4e574c04be22a4fa2cc238519a5bdb9",
      "tree": "e6c6018e73012915a1444fff3afdb5c3ca93a43b",
      "parents": [
        "9400525894adeb9a7edd5bd5ec4fe5eeb774d83b"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jul 09 11:24:28 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jul 09 11:24:28 2026 -0400"
      },
      "message": "Fix Base64.toIntegerBytes(BigInteger) for zero edge case (#441).\n"
    },
    {
      "commit": "9400525894adeb9a7edd5bd5ec4fe5eeb774d83b",
      "tree": "c4706f2345f664aa66a7bed9bccc8792c9bd6af2",
      "parents": [
        "b7d744302ecf8b5ae775f28b5889a8af0dd4e82c"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@users.noreply.github.com",
        "time": "Thu Jul 09 11:23:18 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 09 11:23:18 2026 -0400"
      },
      "message": "Fix Base64.toIntegerBytes(BigInteger) for zero edge case. (#441)"
    },
    {
      "commit": "b7d744302ecf8b5ae775f28b5889a8af0dd4e82c",
      "tree": "7b5bce528016d28a10fc825e4e49251fe0ce672f",
      "parents": [
        "b672f947024ac400a4bbb06fe3b92fbad172e9c7"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jul 09 11:21:30 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jul 09 11:21:30 2026 -0400"
      },
      "message": "Add GH CI Java 26\n\nBump experimental build from Java 26-ea to 27-ea.\n"
    },
    {
      "commit": "b672f947024ac400a4bbb06fe3b92fbad172e9c7",
      "tree": "c9892c22dbd6ca09c71e4803af4a591b53657cdb",
      "parents": [
        "18c03a39f36a368f46a9c41bc9632a44c7a5204a"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jul 09 08:53:17 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jul 09 08:53:17 2026 -0400"
      },
      "message": "Internal bullet proofing\n"
    },
    {
      "commit": "18c03a39f36a368f46a9c41bc9632a44c7a5204a",
      "tree": "a51e2d61882c34eb90d649599f33cdcb313f3b81",
      "parents": [
        "fec5f357618ea592099a2249b0d24e509aa502b7"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 08 16:14:23 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 08 16:14:23 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.36.2 to 4.36.3\n"
    },
    {
      "commit": "fec5f357618ea592099a2249b0d24e509aa502b7",
      "tree": "a7c6a533619ab037b4e32fd714258f3bf51e882a",
      "parents": [
        "d8f6ee18c1ee6a18f98c6e9a683fbd56d799ff96"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Jul 03 14:34:54 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Jul 03 14:34:54 2026 +0000"
      },
      "message": "Fix action type.\n"
    },
    {
      "commit": "d8f6ee18c1ee6a18f98c6e9a683fbd56d799ff96",
      "tree": "4e1b74fb3bd1aacf33d7b1b61e155e61ca833ff8",
      "parents": [
        "142ec2c331d65966a6f520a5c87c765bacb78d88"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 01 07:31:52 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Jul 01 07:31:52 2026 -0400"
      },
      "message": "Bump actions/checkout from 6.0.2 to 7.0.0\n"
    },
    {
      "commit": "142ec2c331d65966a6f520a5c87c765bacb78d88",
      "tree": "124e8db682357716fcc171e2df9c825d573ca187",
      "parents": [
        "23a94cede9ccba2bb2d83f0133f0cba0ff37b512"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jun 30 20:50:04 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jun 30 20:50:04 2026 -0400"
      },
      "message": "Bump actions/setup-java from 5.3.0 to 5.4.0\n"
    },
    {
      "commit": "23a94cede9ccba2bb2d83f0133f0cba0ff37b512",
      "tree": "76b755990dd6b80495debe9b1de1881a0f0f7ffd",
      "parents": [
        "8f2a08ebc73397c56bfd55131709d1fb151b1726"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jun 30 13:43:04 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Jun 30 13:43:04 2026 +0000"
      },
      "message": "Javadoc\n"
    },
    {
      "commit": "8f2a08ebc73397c56bfd55131709d1fb151b1726",
      "tree": "e1bf941dd0177c2c06a2da0b431dba5e96cc1940",
      "parents": [
        "84d550d3ab0ab9300176f22a0f496eb821ada857"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jun 29 07:29:42 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jun 29 07:29:42 2026 -0400"
      },
      "message": "Bump actions/cache from 6.0.0 to 6.1.0\n"
    },
    {
      "commit": "84d550d3ab0ab9300176f22a0f496eb821ada857",
      "tree": "68782d7b5922276425cebd6a585bd17a9da0b6aa",
      "parents": [
        "d5cd986e58d086163d2d09151f9e82004216010e"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 25 18:23:50 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 25 18:23:50 2026 -0400"
      },
      "message": "Bump actions/cache from 5.0.5 to 6.0.0.\n"
    },
    {
      "commit": "d5cd986e58d086163d2d09151f9e82004216010e",
      "tree": "26de56d13d1cb8d8cb8dfbc94cd19307a9c05c6d",
      "parents": [
        "1da0ee652afce8a67da6e777298951452d8e9548"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jun 22 07:31:57 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Jun 22 07:31:57 2026 -0400"
      },
      "message": "Bump actions/setup-java from 5.2.0 to 5.3.0\n"
    },
    {
      "commit": "1da0ee652afce8a67da6e777298951452d8e9548",
      "tree": "2a71a3094cb19a254ced62a5eeed37ce13ccf4e6",
      "parents": [
        "8470693f2de9d8f43615d407ad7c08f42c2a5250"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Jun 19 07:28:09 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Jun 19 07:28:09 2026 -0400"
      },
      "message": "Bump actions/checkout from 6.0.3 to 7.0.0.\n"
    },
    {
      "commit": "8470693f2de9d8f43615d407ad7c08f42c2a5250",
      "tree": "47595941d0e3a67fed31720e7dd67a58ddfe7513",
      "parents": [
        "f3c046cbd9070f7f155afc6390f1190596921706"
      ],
      "author": {
        "name": "OldTruckDriver",
        "email": "43225823+OldTruckDriver@users.noreply.github.com",
        "time": "Fri Jun 19 05:40:17 2026 +1000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 18 15:40:17 2026 -0400"
      },
      "message": "[CODEC-344] Validate Base64 custom alphabets (#438)\n\n* [CODEC-344] Validate Base64 custom alphabets\n\nReject custom encode tables that are not 64 unique bytes or that contain the\nconfigured padding byte (checked at construction, since padding is configurable).\nSupport non-ASCII alphabet bytes via unsigned lookup in calculateDecodeTable,\ndecode, and isInAlphabet.\n\nAdd tests for duplicate, padding-byte (both setter orders), and non-ASCII alphabets.\n\nReviewed-by: OpenAI Codex\nReviewed-by: Anthropic Claude Code\n\n* Reduce vertical whitespace.\n\n---------\n\nCo-authored-by: Gary Gregory \u003cgarydgregory@users.noreply.github.com\u003e"
    },
    {
      "commit": "f3c046cbd9070f7f155afc6390f1190596921706",
      "tree": "00328e94e7562315e289c229437a151f1ed04169",
      "parents": [
        "7f24197890e089333ad02ad1e3db0174017bf00d",
        "98986558dc1c0e2013b76bea92d75bde80568a00"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 18 02:18:51 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 18 02:18:51 2026 +0000"
      },
      "message": "Merge branch \u0027master\u0027 of https://github.com/apache/commons-codec.git"
    },
    {
      "commit": "7f24197890e089333ad02ad1e3db0174017bf00d",
      "tree": "b61e86128dd4540e1935c133b7f989b0350a54df",
      "parents": [
        "ac982579962c32ee28be1e80cdb514a829e3366f"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 18 02:18:29 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 18 02:18:29 2026 +0000"
      },
      "message": "Sort members.\n"
    },
    {
      "commit": "98986558dc1c0e2013b76bea92d75bde80568a00",
      "tree": "d218a14a2686f3f872053108a7b08e276759d2a6",
      "parents": [
        "ac982579962c32ee28be1e80cdb514a829e3366f"
      ],
      "author": {
        "name": "OldTruckDriver",
        "email": "43225823+OldTruckDriver@users.noreply.github.com",
        "time": "Thu Jun 18 12:16:35 2026 +1000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 17 22:16:35 2026 -0400"
      },
      "message": "[CODEC-340] Fix Base58 custom alphabet handling (#437)\n\nDerive a matching decode table from custom Base58 encode tables and use the configured tables when encoding, decoding, and checking the alphabet.\n\nHandle leading zero bytes with the first entry of the configured alphabet instead of hard-coding \u00271\u0027.\n\nReviewed-by: OpenAI Codex\nReviewed-by: Anthropic Claude Code\n\nCo-authored-by: Gary Gregory \u003cgarydgregory@users.noreply.github.com\u003e"
    },
    {
      "commit": "ac982579962c32ee28be1e80cdb514a829e3366f",
      "tree": "2fe2b64866fc7ec41e9c222eaa0e6f3e9690d8e5",
      "parents": [
        "472a2894046e14fe2fd6e4f5312da8afb93c8769"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 18 02:08:45 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 18 02:08:45 2026 +0000"
      },
      "message": "Fix up changes.xml after merge\n"
    },
    {
      "commit": "472a2894046e14fe2fd6e4f5312da8afb93c8769",
      "tree": "c5f6a64b2304db7be94807139b0083689f97a929",
      "parents": [
        "759150423e3a51adf095ebf770d82f3183f8a9cb"
      ],
      "author": {
        "name": "OldTruckDriver",
        "email": "43225823+OldTruckDriver@users.noreply.github.com",
        "time": "Thu Jun 18 12:08:10 2026 +1000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 17 22:08:10 2026 -0400"
      },
      "message": "[CODEC-342] Base32.Builder#setEncodeTable(...) can create an instance that cannot decode its own output (#436)\n\n* [CODEC-343] Fix Base32 hex decode table builder\n\nConfigure setHexDecodeTable(boolean) with the matching encode table instead of passing a decode lookup table to setEncodeTable(byte...).\n\nAdd a regression test showing the configured codec encodes with the Base32-Hex alphabet and decodes its own output.\n\nReviewed-by: OpenAI Codex\nReviewed-by: Anthropic Claude Code\n\n* [CODEC-342] Fix Base32 custom alphabet decode table\n\nDerive Base32 decode tables from custom encode tables so a configured codec can decode its own output.\n\nReject encode tables that do not contain exactly 32 unique byte values.\n\nReviewed-by: OpenAI Codex\nReviewed-by: Anthropic Claude Code\n\n---------\n\nCo-authored-by: Gary Gregory \u003cgarydgregory@users.noreply.github.com\u003e"
    },
    {
      "commit": "759150423e3a51adf095ebf770d82f3183f8a9cb",
      "tree": "142b15a1b3486a46ae5a5d46fe70eaf557d22233",
      "parents": [
        "833558b235fc9beb7571db416818e871d34c6514"
      ],
      "author": {
        "name": "OldTruckDriver",
        "email": "43225823+OldTruckDriver@users.noreply.github.com",
        "time": "Thu Jun 18 12:02:43 2026 +1000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 17 22:02:43 2026 -0400"
      },
      "message": "[CODEC-343] Fix Base32 hex decode table builder (#435)\n\nConfigure setHexDecodeTable(boolean) with the matching encode table instead of passing a decode lookup table to setEncodeTable(byte...).\n\nAdd a regression test showing the configured codec encodes with the Base32-Hex alphabet and decodes its own output.\n\nReviewed-by: OpenAI Codex\nReviewed-by: Anthropic Claude Code\n\nCo-authored-by: Gary Gregory \u003cgarydgregory@users.noreply.github.com\u003e"
    },
    {
      "commit": "833558b235fc9beb7571db416818e871d34c6514",
      "tree": "aa56710eceb36d6c631dcad2ae00937adbba1861",
      "parents": [
        "f890da3cb5320745009160065ffe95aeb23b91a1"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 18 01:59:10 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 18 01:59:10 2026 +0000"
      },
      "message": "Sort members\n"
    },
    {
      "commit": "f890da3cb5320745009160065ffe95aeb23b91a1",
      "tree": "42d8db0aa5183c0a267618745e03467734b464e3",
      "parents": [
        "143dd5228c02e8ea5db8414aedd9efdb4f9d19ee"
      ],
      "author": {
        "name": "OldTruckDriver",
        "email": "43225823+OldTruckDriver@users.noreply.github.com",
        "time": "Thu Jun 18 11:58:19 2026 +1000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 17 21:58:19 2026 -0400"
      },
      "message": "[CODEC-341] Fix Base16 custom alphabet decode table (#434)\n\n* [CODEC-341] Fix Base16 custom alphabet decode table\n\nDerive Base16 decode tables from custom encode tables so a configured codec can decode its own output. Reject encode tables that do not contain exactly 16 unique byte values.\n\nReviewed-by: OpenAI Codex\nReviewed-by: Anthropic Claude Code\n\n* Update Base16Test.java\n\n* Remove test clutter.\n\n---------\n\nCo-authored-by: Gary Gregory \u003cgarydgregory@users.noreply.github.com\u003e"
    },
    {
      "commit": "143dd5228c02e8ea5db8414aedd9efdb4f9d19ee",
      "tree": "51ef60425dd1ebe0eaca1b807643ba5e777e5c45",
      "parents": [
        "42ac9960a1b3bc3cbd6788e9384bb1b96177cf69"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 18 01:51:08 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 18 01:51:08 2026 +0000"
      },
      "message": "Internal refactoring\n"
    },
    {
      "commit": "42ac9960a1b3bc3cbd6788e9384bb1b96177cf69",
      "tree": "d0ad9f0e43e638167a68880b48ce830cadd071a0",
      "parents": [
        "97d5d232f544910eb4e6feaef4172d3fbaec4abf",
        "92e18dea1b6bb18b32b8b1443acf38d8342ff827"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 18 01:41:05 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 18 01:41:05 2026 +0000"
      },
      "message": "Merge branch \u0027master\u0027 of https://github.com/apache/commons-codec.git"
    },
    {
      "commit": "97d5d232f544910eb4e6feaef4172d3fbaec4abf",
      "tree": "e62a5b65b8857bc8cee76a9178f28d7f2aae6c19",
      "parents": [
        "7bead8487390ef6207cd0f771153811b02dcbcc1"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 18 01:40:59 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 18 01:40:59 2026 +0000"
      },
      "message": "Internal refactoring\n"
    },
    {
      "commit": "92e18dea1b6bb18b32b8b1443acf38d8342ff827",
      "tree": "48882481b5567d508c4cb79c44994fa6ba13e281",
      "parents": [
        "7bead8487390ef6207cd0f771153811b02dcbcc1"
      ],
      "author": {
        "name": "OldTruckDriver",
        "email": "43225823+OldTruckDriver@users.noreply.github.com",
        "time": "Thu Jun 18 11:35:11 2026 +1000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 17 21:35:11 2026 -0400"
      },
      "message": "[CODEC-339] Escape URLCodec control characters in custom safe sets (#433)\n\nKeep \u0027%\u0027 and \u0027+\u0027 percent-encoded even when callers mark them safe in URLCodec.encodeUrl(BitSet, byte[]). decodeUrl() treats those bytes as encoding syntax, so emitting them literally can produce undecodable output or break round trips.\n\nReviewed-by: OpenAI Codex\nReviewed-by: Anthropic Claude Code\n\nCo-authored-by: Gary Gregory \u003cgarydgregory@users.noreply.github.com\u003e"
    },
    {
      "commit": "7bead8487390ef6207cd0f771153811b02dcbcc1",
      "tree": "1cd430e32ce161b66053be2011a5d9be4e2a0b83",
      "parents": [
        "8194db4cdf9e5c3d7831d6ad750dd9217b86b754"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 18 01:29:35 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 18 01:29:35 2026 +0000"
      },
      "message": "Use compact array notation."
    },
    {
      "commit": "8194db4cdf9e5c3d7831d6ad750dd9217b86b754",
      "tree": "69eee83a4bb20a2c62977bc880490e93c8fc3b90",
      "parents": [
        "931c2fa4672688a58eeec1a98599202759a160b7"
      ],
      "author": {
        "name": "OldTruckDriver",
        "email": "43225823+OldTruckDriver@users.noreply.github.com",
        "time": "Thu Jun 18 11:28:14 2026 +1000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 17 21:28:14 2026 -0400"
      },
      "message": "[CODEC-338] Escape literal plus with plusForSpace (#432)\n\nWhen plusForSpace is enabled, decoding treats \u0027+\u0027 as a space. Mark \u0027+\u0027 as an always-encoded character for that mode so encoding emits a literal plus as %2B and preserves round trips.\n\nReviewed-by: OpenAI Codex\nReviewed-by: Anthropic Claude Code"
    },
    {
      "commit": "931c2fa4672688a58eeec1a98599202759a160b7",
      "tree": "c166da8b64ad4e70b730b364a09e9a0c0f6e7686",
      "parents": [
        "1bf3426e084f8b4ed82a33bd2797e0ed98949c0a"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 11 14:23:28 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 11 14:23:28 2026 -0400"
      },
      "message": "Update legacy GitHub links in CONTRIBUTING.md\n"
    },
    {
      "commit": "1bf3426e084f8b4ed82a33bd2797e0ed98949c0a",
      "tree": "84e66f2b35f6739a4507d11c599057a80a4fcbe9",
      "parents": [
        "b852d0c6d6c6ccc2d60aecdaa9a38dec9803b661"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 11 09:35:00 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Jun 11 09:35:00 2026 -0400"
      },
      "message": "Bump org.apache.commons:commons-parent from 101 to 102.\n"
    },
    {
      "commit": "b852d0c6d6c6ccc2d60aecdaa9a38dec9803b661",
      "tree": "411b21f3493b1e7c14ab91e0c563e26829e34abe",
      "parents": [
        "86e664dbde8a4927adde3b852985b878a58d43e7"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jun 07 10:12:46 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jun 07 10:12:46 2026 -0400"
      },
      "message": "Bump GH CI actions/dependency-review-action from 4.9.0 to 5.0.0\n"
    },
    {
      "commit": "86e664dbde8a4927adde3b852985b878a58d43e7",
      "tree": "40d4e444cbdd57b0738c74f0ea1544a56fc5dc5c",
      "parents": [
        "0406d1cee892b2d49c5861630ff77cefddfb4933"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jun 07 10:08:52 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Jun 07 10:08:52 2026 -0400"
      },
      "message": "Bump GH CI actions/checkout from 6.0.2 to 6.0.3\n"
    },
    {
      "commit": "0406d1cee892b2d49c5861630ff77cefddfb4933",
      "tree": "251cb9009816ff5b62f75a7146f4cbcbf095fb3c",
      "parents": [
        "cda9710de8f1ac6f1a7d2d25d13b7226637bf836"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Jun 05 11:40:19 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Jun 05 11:40:19 2026 -0400"
      },
      "message": "Bump org.apache.commons:commons-parent from 100 to 101"
    },
    {
      "commit": "cda9710de8f1ac6f1a7d2d25d13b7226637bf836",
      "tree": "b1217e9898cc06a2b0a2fde84533792a7c1f141d",
      "parents": [
        "fcf4d82a6f08de178baf45acd5ad9265bf6b9c4b"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Jun 05 07:27:55 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Jun 05 07:27:55 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.36.0 to 4.36.2\n"
    },
    {
      "commit": "fcf4d82a6f08de178baf45acd5ad9265bf6b9c4b",
      "tree": "e5acad5f544b2b41abc7a1b6e9144887cc6c1ffc",
      "parents": [
        "19b60fad7edeeff3c096b0cca0653d1f0718d910"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed May 27 16:51:38 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed May 27 16:51:38 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.35.5 to 4.36.0\n"
    },
    {
      "commit": "19b60fad7edeeff3c096b0cca0653d1f0718d910",
      "tree": "b7eda3d5fe7146b74ef61b792ef546029528949f",
      "parents": [
        "9676e23787efd7b05548872a2a6731a66a861a32"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu May 21 20:49:45 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu May 21 20:49:45 2026 -0400"
      },
      "message": "Reuse constant\n"
    },
    {
      "commit": "9676e23787efd7b05548872a2a6731a66a861a32",
      "tree": "20a184b8df760e175b5d7fd2c8deb7a2100df367",
      "parents": [
        "6b86a438b72cfa194af965d0e290e383106b3cee"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu May 21 15:39:07 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu May 21 15:39:07 2026 -0400"
      },
      "message": "Bump org.apache.commons:commons-parent from 99 to 100.\n"
    },
    {
      "commit": "6b86a438b72cfa194af965d0e290e383106b3cee",
      "tree": "8a304b5a81d880d6e520a374a0f9b44ad87ea48c",
      "parents": [
        "f2ac150daabcd8aa334b94c3d58c3c1ee695e8e0"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu May 21 07:28:49 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu May 21 07:28:49 2026 -0400"
      },
      "message": "Digest ALL reuses System.in, so only the first algorithm sees the real\ninput (#431).\n"
    },
    {
      "commit": "f2ac150daabcd8aa334b94c3d58c3c1ee695e8e0",
      "tree": "6448005551b26cffd22373159cec805a2fc9364e",
      "parents": [
        "d3179620d7d055bee965b1b2a048bcc846b1981b"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@users.noreply.github.com",
        "time": "Thu May 21 07:27:10 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 07:27:10 2026 -0400"
      },
      "message": "[CODEC-337] Digest ALL reuses System.in, so only the first algorithm sees the real input (#431)"
    },
    {
      "commit": "d3179620d7d055bee965b1b2a048bcc846b1981b",
      "tree": "9e4e0f35037468e366f5cc22e739c46b5f4aab2d",
      "parents": [
        "77fcf89711a0e20393105a1247c41968f6eb58d4"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed May 20 06:43:34 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed May 20 06:43:34 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.35.4 to 4.35.5\n"
    },
    {
      "commit": "77fcf89711a0e20393105a1247c41968f6eb58d4",
      "tree": "4b283f0cb7a7465024133be466bf3ba9b66b7d30",
      "parents": [
        "acb8802a22051651a880de8fbdb1f68b28c7ef7c"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue May 12 18:49:09 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue May 12 18:49:09 2026 +0000"
      },
      "message": "Bump github/codeql-action from 4.35.3 to 4.35.4\n"
    },
    {
      "commit": "acb8802a22051651a880de8fbdb1f68b28c7ef7c",
      "tree": "1c2597a0fa27d2b2b69da739bfe3a504cb1f41c8",
      "parents": [
        "434789abd38decf069b2787696538580cfaf3359"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue May 05 11:23:09 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue May 05 11:23:09 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.35.2 to 4.35.3\n"
    },
    {
      "commit": "434789abd38decf069b2787696538580cfaf3359",
      "tree": "6c38d00e45c28c7d9c419955320a36fae181eb3e",
      "parents": [
        "6ff3cc48b02d1725495fa7f1c19427e168c1536e"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Apr 27 07:01:05 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Apr 27 07:01:05 2026 -0400"
      },
      "message": "Javadoc: No need for FQCNs.\n"
    },
    {
      "commit": "6ff3cc48b02d1725495fa7f1c19427e168c1536e",
      "tree": "35360b14311802da8e0480c4bc6649d2e099b0ab",
      "parents": [
        "c8e1f069137de1caebcd21dab17080318f99986b"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 26 07:31:54 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 26 07:31:54 2026 -0400"
      },
      "message": "Bump org.apache.commons:commons-parent from 98 to 99\n"
    },
    {
      "commit": "c8e1f069137de1caebcd21dab17080318f99986b",
      "tree": "567c43bd5ff725d76504b1f80f75301446db3726",
      "parents": [
        "6a41a907c7e0050e5de409c63c4df9edd331dfe1"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Apr 25 23:23:04 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Apr 25 23:23:04 2026 +0000"
      },
      "message": "Updates for the next release\n"
    },
    {
      "commit": "6a41a907c7e0050e5de409c63c4df9edd331dfe1",
      "tree": "bb217ac05c54871117db89e95f7550b6260c0906",
      "parents": [
        "ed4396b4cbc85cea60cbd1cec6bc203a940251d2",
        "250053d31de82d4ccf9bf21ad697352e7d816363"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Apr 25 00:31:10 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Apr 25 00:31:10 2026 +0000"
      },
      "message": "Merge branch \u0027release\u0027\n"
    },
    {
      "commit": "250053d31de82d4ccf9bf21ad697352e7d816363",
      "tree": "be8fafd17cd495e07b596e496969cfe74bb7849a",
      "parents": [
        "81a6295f071df5819893422a397d94bc396f2edd"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Apr 25 00:31:10 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Apr 25 00:31:10 2026 +0000"
      },
      "message": "Bump to next development version\n"
    },
    {
      "commit": "ed4396b4cbc85cea60cbd1cec6bc203a940251d2",
      "tree": "0b36ba97fca4c2cb7d4e4676af7cfcd8ba8c32b8",
      "parents": [
        "a18cce11d12705213c0da7910eb476da1de22af9"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Apr 23 06:43:02 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Apr 23 06:43:02 2026 -0400"
      },
      "message": "Bump commons-io:commons-io from 2.21.0 to 2.22.0.\n"
    },
    {
      "commit": "a18cce11d12705213c0da7910eb476da1de22af9",
      "tree": "18a241bb259aaa3fc958e718456dc07a7cca1810",
      "parents": [
        "73104b011a9758896904831f9b1bd29aad077f11"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Apr 23 06:30:23 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Apr 23 06:30:23 2026 -0400"
      },
      "message": "FIx tag in POM."
    },
    {
      "commit": "81a6295f071df5819893422a397d94bc396f2edd",
      "tree": "3bf2ad96b7c373e7034ce4006631ce173e8672f8",
      "parents": [
        "73104b011a9758896904831f9b1bd29aad077f11"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 19 11:12:11 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 19 11:12:11 2026 +0000"
      },
      "message": "Prepare for the release candidate 1.22.0 RC1\n"
    },
    {
      "commit": "73104b011a9758896904831f9b1bd29aad077f11",
      "tree": "9e18f13339dfb82190476286f73ee7f8afffaa0d",
      "parents": [
        "8e36214fa2760d37e4e9c83336ed5bb324c23482"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 19 11:10:11 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 19 11:10:11 2026 +0000"
      },
      "message": "Prepare for the next release candidate\n"
    },
    {
      "commit": "8e36214fa2760d37e4e9c83336ed5bb324c23482",
      "tree": "94dec3c7fad33f8f35df99d6eeb05291cecb48ef",
      "parents": [
        "9bd67e787d88705baa26e85f3a9609dec015ba5b"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 19 07:02:56 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 19 07:02:56 2026 -0400"
      },
      "message": "In-line single use test local variables\n"
    },
    {
      "commit": "9bd67e787d88705baa26e85f3a9609dec015ba5b",
      "tree": "a25565082315d03a65190d46290d85dc8f907444",
      "parents": [
        "25e52b06a3c24dc06216e7d29321a2f01c60ec6f"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 19 06:59:41 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 19 06:59:41 2026 -0400"
      },
      "message": "Use vararg syntax\n"
    },
    {
      "commit": "25e52b06a3c24dc06216e7d29321a2f01c60ec6f",
      "tree": "cc77c39772b94901a97bd7503c908645bc19b193",
      "parents": [
        "e2ebaca8b30d1d04d0eb6a4e811a6d26631f4d31"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 19 06:55:37 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 19 06:55:37 2026 -0400"
      },
      "message": "Use vararg syntax\n"
    },
    {
      "commit": "e2ebaca8b30d1d04d0eb6a4e811a6d26631f4d31",
      "tree": "816198b1dfee3517923b742c1dd05b993a60e103",
      "parents": [
        "33998a05a8adc84ca944bad2e5c7215309d1477b"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Apr 16 07:10:11 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Apr 16 07:10:11 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.35.1 to 4.35.2\n"
    },
    {
      "commit": "33998a05a8adc84ca944bad2e5c7215309d1477b",
      "tree": "a88bea8141481dfc8fd3d6187e16aa066dcb69ea",
      "parents": [
        "50c6583280cb3ed67407dcaeb31df4f8fa8ede20"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Apr 14 07:54:43 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Apr 14 07:54:43 2026 -0400"
      },
      "message": "Bump actions/upload-artifact from 7.0.0 to 7.0.1\n"
    },
    {
      "commit": "50c6583280cb3ed67407dcaeb31df4f8fa8ede20",
      "tree": "67c85dd5f000662f4c9b3a4d0c3a396dd29c4c7b",
      "parents": [
        "b2be3a82b2d0902e89718a56c6afb5850d020668"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Apr 14 07:48:35 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Apr 14 07:48:35 2026 -0400"
      },
      "message": "Bump actions/cache from 5.0.4 to 5.0.5\n"
    },
    {
      "commit": "b2be3a82b2d0902e89718a56c6afb5850d020668",
      "tree": "210dc4e85ba117181175def4c56084157225a418",
      "parents": [
        "20f09bfcfdce88760ec9be095b848e85d9084acf"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Apr 13 07:35:42 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Apr 13 07:35:42 2026 -0400"
      },
      "message": "Add @Override\n"
    },
    {
      "commit": "20f09bfcfdce88760ec9be095b848e85d9084acf",
      "tree": "17162627c7117ed60c54f4fd80246184d5baa851",
      "parents": [
        "fbe6354c6acd5de8532a49e26b9d08706c757719"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 12 18:27:16 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 12 18:27:16 2026 -0400"
      },
      "message": "Use final.\n\nUse compact array notation.\n"
    },
    {
      "commit": "fbe6354c6acd5de8532a49e26b9d08706c757719",
      "tree": "9493ca8b9908c547825fbcf029044f2f1b5da439",
      "parents": [
        "9d2fd407b6caa0a58af6bdf3c62f4a1946730ba6"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 12 14:48:02 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 12 14:48:02 2026 -0400"
      },
      "message": "Javadoc\n"
    },
    {
      "commit": "9d2fd407b6caa0a58af6bdf3c62f4a1946730ba6",
      "tree": "2369554bd3592aee0310f105dfffb69bc109e041",
      "parents": [
        "054a4dd0fae429a655e34997bc38d8dddfcada15"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 12 14:47:51 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 12 14:47:51 2026 -0400"
      },
      "message": "Javadoc that works on Java 8, 11, 17, 21, and 25.\n"
    },
    {
      "commit": "054a4dd0fae429a655e34997bc38d8dddfcada15",
      "tree": "a133582c1b9ef55af5d2e2de2e4214e26e935e6d",
      "parents": [
        "decdb7d1ac200d4c3d80b7f1042133702cf9cfcb"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 12 13:40:50 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 12 13:40:50 2026 -0400"
      },
      "message": "Fix Javadoc text\n"
    },
    {
      "commit": "decdb7d1ac200d4c3d80b7f1042133702cf9cfcb",
      "tree": "da64f1c0fc96e6f57af7a74010780dcc8ee08d2b",
      "parents": [
        "b495206e74025ec07c23eea9e8ac9e27e13eac1e"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 12 13:39:19 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 12 13:39:19 2026 -0400"
      },
      "message": "TreeIdBuilder implements Supplier\u003cbyte[]\u003e\n"
    },
    {
      "commit": "b495206e74025ec07c23eea9e8ac9e27e13eac1e",
      "tree": "9b8a76499c6a781f34f194e7e959407d6203128c",
      "parents": [
        "9e8cb6acd1cd7f6aa3362be8e088ebc5c130faff"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 12 13:35:50 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 12 13:35:50 2026 -0400"
      },
      "message": "Remove conversion overhead when loading the FileMode enum.\n\nFix Javadoc warning\n"
    },
    {
      "commit": "9e8cb6acd1cd7f6aa3362be8e088ebc5c130faff",
      "tree": "6ecd5d08fd98e25789dc97760746290ee20d61e9",
      "parents": [
        "b075fd146d02df5259f7f88bc5c6a02db694722f"
      ],
      "author": {
        "name": "Piotr P. Karwasz",
        "email": "pkarwasz-github@apache.org",
        "time": "Sun Apr 12 19:00:09 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Apr 12 13:00:09 2026 -0400"
      },
      "message": "Small fixes to `GitIdentifiers` (#429)\n\n* Remove `FileMode.getMode()`\n\nThe octal value associated to `FileMode` is not very useful to users, since it is only used internally, when generating the tree id. Therefore we can probably remove the getter for now.\n\n* Add filesystem test\n\n* Sort methods\n\n* Fix formatting\n\n* Enable test on Windows\n\nThe test will check anyway if symbolic links are supported.\n\n* Remove unused imports"
    },
    {
      "commit": "b075fd146d02df5259f7f88bc5c6a02db694722f",
      "tree": "3546ecfd21e53b50d472d7a0c35caf79ffce7e80",
      "parents": [
        "e83256653eaa5f1131ef9725de624ab988053fc4"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 12 11:33:10 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 12 11:33:10 2026 -0400"
      },
      "message": "Javadoc\n"
    },
    {
      "commit": "e83256653eaa5f1131ef9725de624ab988053fc4",
      "tree": "66fcfb57e195729867ebb64c3431203617b6f692",
      "parents": [
        "c29e2e81110d12efcb9fca446f8e1c5ad6b0abdd"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 12 10:13:24 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 12 10:13:24 2026 -0400"
      },
      "message": "Internal refactoring\n"
    },
    {
      "commit": "c29e2e81110d12efcb9fca446f8e1c5ad6b0abdd",
      "tree": "50527ee3f962ff6eeb18de3c0e9ffcd780667c8a",
      "parents": [
        "a0db7e239dcd9be5d6f9e9c6b97e3cffbbd02df2"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 12 09:58:06 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 12 09:58:06 2026 -0400"
      },
      "message": "Make internal method fluent\n"
    },
    {
      "commit": "a0db7e239dcd9be5d6f9e9c6b97e3cffbbd02df2",
      "tree": "257d4250a178b09826f7bb3fb8588e9e00516171",
      "parents": [
        "d757d5166928a8e490ceb8a6a91d269e126a594c"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 12 09:56:50 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 12 09:56:50 2026 -0400"
      },
      "message": "Better internal name\n"
    },
    {
      "commit": "d757d5166928a8e490ceb8a6a91d269e126a594c",
      "tree": "839ad1d45f11c13eb54967c999b4ee8df28f2657",
      "parents": [
        "feeec7591704b24709e8028c434c7b57a6e2d9d7"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 12 09:56:05 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 12 09:56:05 2026 -0400"
      },
      "message": "GitIdentifiers.TreeIdBuilder.build() never throws IOException\n"
    },
    {
      "commit": "feeec7591704b24709e8028c434c7b57a6e2d9d7",
      "tree": "7ad0b7b2b3c96d2c99678220145c571e6e5cf72e",
      "parents": [
        "1ff5140ce427f6cfa53059d292ad91f08cfe8d2c"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 12 09:36:17 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Apr 12 09:36:17 2026 -0400"
      },
      "message": "Add GitIdentifiers.FileMode.GIT_LINK\n"
    }
  ],
  "next": "1ff5140ce427f6cfa53059d292ad91f08cfe8d2c"
}
