)]}'
{
  "commit": "956979b4458abd89a7e28d9685f8c178d9ca19fd",
  "tree": "d463c7977eaa9408f0fd9d668e702e6f1cd358dc",
  "parents": [
    "d8a2f7087d0f7954ec83f17d23519835959c13bd"
  ],
  "author": {
    "name": "Christopher Kohlhoff",
    "email": "chris@kohlhoff.com",
    "time": "Sun Feb 15 15:30:32 2015 +1100"
  },
  "committer": {
    "name": "Christopher Kohlhoff",
    "email": "chris@kohlhoff.com",
    "time": "Sun Feb 15 15:30:32 2015 +1100"
  },
  "message": "Add support for networks and address ranges.\n\nThe following new classes have been added:\n- address_iterator_v4: for iterating across IPv4 addresses\n- address_iterator_v6: for iterating across IPv6 addresses\n- address_range_v4: to represent a range of IPv4 addresses\n- address_range_v6: to represent a range of IPv6 addresses\n- network_v4: for manipulating IPv4 CIDR addresses, e.g. 1.2.3.0/24\n- network_v6: for manipulating IPv6 CIDR addresses, e.g. ffe0:/120\n\nThanks go to Oliver Kowalke for contributing to the design and providing\nthe implementation on which this facility is based.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "438a51d891ac348a12bb53ac63517253e2b1ba5a",
      "old_mode": 33188,
      "old_path": "asio/include/Makefile.am",
      "new_id": "8defef36d6ab66153061e1ba9230d09abc2086b8",
      "new_mode": 33188,
      "new_path": "asio/include/Makefile.am"
    },
    {
      "type": "modify",
      "old_id": "51deb116520a12e0ca85e8aaeaeb187ed517410a",
      "old_mode": 33188,
      "old_path": "asio/include/asio.hpp",
      "new_id": "3811c3de0b4d386536375df2fea3c7cfdfcbc98f",
      "new_mode": 33188,
      "new_path": "asio/include/asio.hpp"
    },
    {
      "type": "modify",
      "old_id": "df5f8861bc170ba7983c652d189d9774a98ca040",
      "old_mode": 33188,
      "old_path": "asio/include/asio/impl/src.hpp",
      "new_id": "33211034ccd19e6604c5b59ff5ec2e72f31a5da6",
      "new_mode": 33188,
      "new_path": "asio/include/asio/impl/src.hpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "aac7ce4c92ccb924ee34d0334b901c135a5c9ecc",
      "new_mode": 33188,
      "new_path": "asio/include/asio/ip/address_iterator_v4.hpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "274c7e8076c0ca66a07bade4c7bf66a13a8e480d",
      "new_mode": 33188,
      "new_path": "asio/include/asio/ip/address_iterator_v6.hpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "06f07b9a70d0f65e80731c49a0b303874e9afbf4",
      "new_mode": 33188,
      "new_path": "asio/include/asio/ip/address_range_v4.hpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "261b9455bf8e38f6f6530c5c7e71473f4eea4b53",
      "new_mode": 33188,
      "new_path": "asio/include/asio/ip/address_range_v6.hpp"
    },
    {
      "type": "modify",
      "old_id": "69de7670d64a5fd50605a255699cc7b0df3ca801",
      "old_mode": 33188,
      "old_path": "asio/include/asio/ip/address_v6.hpp",
      "new_id": "74569e8cdeede8e7c4d34568d71bc8cbdba07cee",
      "new_mode": 33188,
      "new_path": "asio/include/asio/ip/address_v6.hpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "291bb997e4f1b3e453ca0b3b0225e3d83cd482d9",
      "new_mode": 33188,
      "new_path": "asio/include/asio/ip/impl/network_v4.hpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bf44629db80677c900468d0b12ae01f602b4f82a",
      "new_mode": 33188,
      "new_path": "asio/include/asio/ip/impl/network_v4.ipp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "29dd868d494c5cb546d918025acc53276ba47dd1",
      "new_mode": 33188,
      "new_path": "asio/include/asio/ip/impl/network_v6.hpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "89c839820c4a3a1f6d21d851161ed2af69dc58b0",
      "new_mode": 33188,
      "new_path": "asio/include/asio/ip/impl/network_v6.ipp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3d1e37cf94ddc4894e43f51943342e26a24a5197",
      "new_mode": 33188,
      "new_path": "asio/include/asio/ip/network_v4.hpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "346ad0e740a8b496d6385ce98af62a0f5eb23536",
      "new_mode": 33188,
      "new_path": "asio/include/asio/ip/network_v6.hpp"
    },
    {
      "type": "modify",
      "old_id": "8fa303557b1a759d563b3d8f27b54e42777509c1",
      "old_mode": 33188,
      "old_path": "asio/src/tests/Makefile.am",
      "new_id": "09c1a1045e2ed4e94a5811f1fab0c36c5e535aca",
      "new_mode": 33188,
      "new_path": "asio/src/tests/Makefile.am"
    },
    {
      "type": "modify",
      "old_id": "b1b2e7b52501b33079ba4b11ab1dfc947044ed32",
      "old_mode": 33188,
      "old_path": "asio/src/tests/unit/ip/.gitignore",
      "new_id": "ab157b6395081737760eb933be3d86ab1c906105",
      "new_mode": 33188,
      "new_path": "asio/src/tests/unit/ip/.gitignore"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "931c085c87749e8de98606b1b93ad588367fc17a",
      "new_mode": 33188,
      "new_path": "asio/src/tests/unit/ip/address_iterator_v4.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5b08adb2ab109fb8550e7543a81163a49df47f42",
      "new_mode": 33188,
      "new_path": "asio/src/tests/unit/ip/address_iterator_v6.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2c9087759e2cbaec625bd63d24238b5cb0361733",
      "new_mode": 33188,
      "new_path": "asio/src/tests/unit/ip/address_range_v4.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5f90af20d9e6b0f1784477af38617eb676e50ae7",
      "new_mode": 33188,
      "new_path": "asio/src/tests/unit/ip/address_range_v6.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8e9b5d4c18804107ef8a10871919a11de08680d7",
      "new_mode": 33188,
      "new_path": "asio/src/tests/unit/ip/network_v4.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "09d3861fa3b183d716f43a69eb1da696115b80d5",
      "new_mode": 33188,
      "new_path": "asio/src/tests/unit/ip/network_v6.cpp"
    }
  ]
}
