)]}'
{
  "log": [
    {
      "commit": "e7aaad8b832bdff3b88aa62b5c7597e5fd3db520",
      "tree": "7dcdc00044d95dfaca5dd4f0a87ba2050a050b50",
      "parents": [
        "87efcd2e63c9f218f476ef88f21e660f9bce633f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 25 14:02:59 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Apr 25 14:02:59 2013 -0700"
      },
      "message": "Improve diagnostics in the face of bad tzdata.\n\nBug: 8373554\nChange-Id: If8df5e956105e01cce95221ff0a7fa9d2b474db3\n"
    },
    {
      "commit": "e0175ca7e440a87e9d03f249fc8f210063df7908",
      "tree": "982e64580d19fc846cd7f2a1fa1dee2fbe2274d8",
      "parents": [
        "ec706c24acb4d1db6a583a57b76adfb9250d39eb"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 14 14:38:08 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Mar 14 14:38:08 2013 -0700"
      },
      "message": "Don\u0027t search off the end of the index for bad Olson ids.\n\nIn the old code, the index was a file to itself, so it made sense to\nread until you hit the end of the file. In the new code, the index is\nfollowed by hundreds of KiB of data, so we need to just search the\nindex.\n\nBug: 8368791\nChange-Id: Icf5f8b5516cf3a93679fa849c9f6cd1cb100e0f1\n"
    },
    {
      "commit": "4a05bef4c06dac05f1c9aa8cfc5b7e7dd6642385",
      "tree": "493815df9e9ddc9b5ce10780ef416eda8d7bb6e2",
      "parents": [
        "62c5cd0781e95c1c50b63c37a9a87bc158e64d38"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 11 17:17:02 2013 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Mar 11 17:17:02 2013 -0700"
      },
      "message": "Cache the most-recently used timezone for mktime_tz and localtime_tz.\n\nNormally, the C library implicitly caches your timezone by virtue\nof the fact that the prehistoric API assumes a single timezone for\nthe entire process.\n\nThe unfortunate mktime_tz and localtime_tz extensions work around\nthis, but represent timezones as strings to their callers, so code\nthat makes heavy use of these needs a cache to be able to perform\nacceptably until it can hopefully one day be rewritten to use\njava.util.Calendar or icu4c.\n\nBug: 8270865\nChange-Id: I92e3964e86dc33ceac925f819cc5e26ff4203f50\n"
    },
    {
      "commit": "b989c9ceda71f6f75112645b5c45af341275cbab",
      "tree": "125cd5001f161f503700580e142af5e4f7f20d2b",
      "parents": [
        "e05709b1df7dba98c37e83f84dcbd2ad8429bcfc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 16 10:34:33 2013 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jan 16 10:34:33 2013 -0800"
      },
      "message": "Revert \"DO NOT MERGE Revert \"Add the libcutils localtime_tz and mktime_t extensions to bionic.\"\"\n\nThis reverts commit f4b34b6c3942be273ad7298a40be0d312b183aab.\n"
    },
    {
      "commit": "85819efe8f771759d12ab86f0bd47ede621dbb7d",
      "tree": "b2f39bf6014bbe47db864114cc670981f0dfca98",
      "parents": [
        "df7f24f310ee3ceb1dc9413d59d5a8816eb584ef",
        "f2b3ac9502e08ef53d4eedd7e93ea9a00d185055"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 25 15:09:29 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 25 15:09:29 2012 -0700"
      },
      "message": "am f2b3ac95: Merge \"Fix recovery: don\\\u0027t assert if there\\\u0027s no tzdata.\"\n\n* commit \u0027f2b3ac9502e08ef53d4eedd7e93ea9a00d185055\u0027:\n  Fix recovery: don\u0027t assert if there\u0027s no tzdata.\n"
    },
    {
      "commit": "49271d89dabae182f5614c0d5fb232dac3c16067",
      "tree": "47a1bb592168d9015caaec999d625196727ceca9",
      "parents": [
        "7b68e3f799d87e84c56687033326924fd8fec84c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 25 14:38:51 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 25 14:56:08 2012 -0700"
      },
      "message": "Fix recovery: don\u0027t assert if there\u0027s no tzdata.\n\nChange-Id: I4d808b57c63ec1ccc024da7fd6a65691e0d455c5\n"
    },
    {
      "commit": "008744cedaa7e3be533bbedb51dd986c6dfea987",
      "tree": "ed3f372cfb1e3af8765d607123aee098bddda64d",
      "parents": [
        "417834b17ee00a6b1cd4e816f632c3596f3f51c3",
        "df92635a57e8093d9cbffc38bbf513f3361ee91e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 22 15:08:38 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 22 15:08:38 2012 -0700"
      },
      "message": "am df92635a: Merge \"Support zone.tab in bionic, and remove the file format version.\"\n\n* commit \u0027df92635a57e8093d9cbffc38bbf513f3361ee91e\u0027:\n  Support zone.tab in bionic, and remove the file format version.\n"
    },
    {
      "commit": "2393535f0d7df55dae3b4fbf5dbcfa7f87192762",
      "tree": "2785a19d597c8c24449de0b225aae3737982bc03",
      "parents": [
        "eb370aa31dd549ad7a7a2044dedab1140a7aeda9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 22 14:47:58 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 22 14:47:58 2012 -0700"
      },
      "message": "Support zone.tab in bionic, and remove the file format version.\n\nBug: 7012465\nChange-Id: I6335c91ebadc609fae85bad94db972be7574b6e4\n"
    },
    {
      "commit": "417834b17ee00a6b1cd4e816f632c3596f3f51c3",
      "tree": "44703f1a50b6d38bcb0ca53d422fe81387b849ec",
      "parents": [
        "629a28cdf384d83a4d433de8e1299b01e42cc75e",
        "eb370aa31dd549ad7a7a2044dedab1140a7aeda9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 22 11:53:22 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 22 11:53:22 2012 -0700"
      },
      "message": "am eb370aa3: Merge \"Make bionic look in /data/misc for tzdata updates.\"\n\n* commit \u0027eb370aa31dd549ad7a7a2044dedab1140a7aeda9\u0027:\n  Make bionic look in /data/misc for tzdata updates.\n"
    },
    {
      "commit": "1c295720343009a7393706f2285a4d026e97eebf",
      "tree": "c8684a0ea3bb68ea0f76c57537e97429987888f3",
      "parents": [
        "dc595d830898e5859bf98d7436af2a777a11f810"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Oct 19 18:13:15 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 22 11:34:05 2012 -0700"
      },
      "message": "Make bionic look in /data/misc for tzdata updates.\n\nBug: 7012465\nChange-Id: I4d1018f686f2409600fdb6630732cae33efe8f02\n"
    },
    {
      "commit": "4d71adbc0d12e5153f537f84cce8d9686762e5b9",
      "tree": "f881ce665bbd4e4e8c07f2e84cd6bed471d2aa9d",
      "parents": [
        "79c6a8d2b163e40eb6f19bbf8f59eb85fb7996e6",
        "102250719f8aff443741e54ba5633c7722544620"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 18 13:56:02 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 18 13:56:02 2012 -0700"
      },
      "message": "am 10225071: Merge \"Fixes x86 build.\"\n\n* commit \u0027102250719f8aff443741e54ba5633c7722544620\u0027:\n  Fixes x86 build.\n"
    },
    {
      "commit": "8b95404d001b285220ae7cbef661b0446a02858b",
      "tree": "dec001e83c36b9e39c278975f28868398b863e35",
      "parents": [
        "ca7466d2b8ee6baad86afc82fa18cda4d931b6d3"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 18 13:42:59 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 18 13:42:59 2012 -0700"
      },
      "message": "Fixes x86 build.\n\nChange-Id: I0e576784b2224668d58ebea03986d534ee0e43b4\n"
    },
    {
      "commit": "1b315363c22fdf53d77fc83ec0bbada32e73ccc7",
      "tree": "1b9cca13108d197c7cd87c7bca0d7c481ad512a0",
      "parents": [
        "e5c8ced4f95e97b2fadc0c64fbdbeeb023677035",
        "5ae762a393168932602eb7269a7d30a53de1c83c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Oct 18 10:59:27 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 18 10:59:27 2012 -0700"
      },
      "message": "am 5ae762a3: Merge \"Pull bionic\\\u0027s time zone data from the new single \\\u0027tzdata\\\u0027 file.\"\n\n* commit \u00275ae762a393168932602eb7269a7d30a53de1c83c\u0027:\n  Pull bionic\u0027s time zone data from the new single \u0027tzdata\u0027 file.\n"
    },
    {
      "commit": "d23af232688bf6980e4503cda6b12ed739292931",
      "tree": "aa21ca14ec869226e3035b82b0c43746b6788cab",
      "parents": [
        "32ea9fe5783e3cc9756205c0ac46482afc700a3d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 17 16:30:47 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Oct 17 16:30:47 2012 -0700"
      },
      "message": "Pull bionic\u0027s time zone data from the new single \u0027tzdata\u0027 file.\n\nBug: 7012465\nChange-Id: Iec71e448bf7a40af30ca89150b3c336e67a44a43\n"
    },
    {
      "commit": "f4b34b6c3942be273ad7298a40be0d312b183aab",
      "tree": "b8af5b4cc52763f738afc5d3665696968e96d4a5",
      "parents": [
        "6c0e373d38a9cb424bd6d9c4d5d6168960846aa5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 24 10:13:12 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 24 10:13:12 2012 -0700"
      },
      "message": "DO NOT MERGE Revert \"Add the libcutils localtime_tz and mktime_t extensions to bionic.\"\n\nThis reverts commit 3a936a4980046a7eeb8d53a3296058d8f3a1f770.\n\nWe don\u0027t want this in jb-mr1.\n"
    },
    {
      "commit": "3a936a4980046a7eeb8d53a3296058d8f3a1f770",
      "tree": "774b22cc48683ad5044c4d8046e8ea4679da2f13",
      "parents": [
        "59726beda5bec7e3db9d0c403a0ef11d0a7f182f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 11 11:15:53 2012 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 11 11:15:53 2012 -0700"
      },
      "message": "Add the libcutils localtime_tz and mktime_t extensions to bionic.\n\nBug: 7012465\nChange-Id: Ib66f061e29199ba134545111dc79f9b50c8f4a21\n"
    },
    {
      "commit": "6481b91520150e9664a3c4abc5d2aebdce422f93",
      "tree": "8fadb7aadcc6002a7053da60d50b49704423a5f9",
      "parents": [
        "23d24394e72715ddf580726655c8ba3fbcf11bfe"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Dec 06 12:23:16 2010 +0100"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Dec 06 12:25:52 2010 +0100"
      },
      "message": "\u003ctime.h\u003e: Add timegm(), timelocal() and others.\n\nAdd timegm(), timelocal(), time2posix() and posix2time() to the\nC library.\n\nChange-Id: I34d5771ed83dd994870a5ca58a511d01898b1ffb\n"
    },
    {
      "commit": "50ace4fec5e8cb5afcbc656a4556fa528adfd760",
      "tree": "04647e039a457f69ba48a8301bebdd605fda7fca",
      "parents": [
        "6a9b888d7c4b246f6f66360789c72b754ff85021"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jun 16 16:36:41 2010 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jun 22 17:51:41 2010 -0700"
      },
      "message": "Remove compiler warnings when building Bionic.\n\nAlso add missing declarations to misc. functions.\nFix clearerr() implementation (previous was broken).\nHandle feature test macros like _POSIX_C_SOURCE properly.\n\nChange-Id: Icdc973a6b9d550a166fc2545f727ea837fe800c4\n"
    },
    {
      "commit": "2093d350be21ff086f9e145404877941b9a42c5c",
      "tree": "7fcb6a68bb996c3c62d0dfdf54a08b8e50adb970",
      "parents": [
        "b4423ff7dfd8c97688cbf87ba8ce22f5b54fa89c"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Sep 09 17:41:59 2009 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Sep 09 17:45:00 2009 -0700"
      },
      "message": "Fix an infinite loop in time2sub.\n\nThe problem is that time_t is signed, and the original code relied on the\nfact that (X + c \u003c X) in case of overflow for c \u003e\u003d 0. Unfortunately, this\ncondition is only guaranteed by the standard for unsigned arithmetic, and\nthe gcc 4.4.0 optimizer did completely remove the corresponding test from\nthe code. This resulted in a missing boundary check, and an infinite loop.\n\nThe problem is solved by testing explicitely for TIME_T_MIN and TIME_T_MAX\nin the loop that uses this.\n\nAlso fix increment_overflow and long_increment_overflow which were buggy\nfor exactly the same reasons.\n\nNote: a similar fix is needed for system/core/libcutils\n"
    },
    {
      "commit": "edbe7fc97bab7ff0684053d1be564330689bf3ad",
      "tree": "271db0992a091d68f17f073ba9573c4698f97ce1",
      "parents": [
        "78bf5fc677a2d25d50598b01781eafacdb5e6afe"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 18 22:20:24 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Mar 18 22:20:24 2009 -0700"
      },
      "message": "auto import //branches/master/...@140412\n"
    },
    {
      "commit": "1dc9e472e19acfe6dc7f41e429236e7eef7ceda1",
      "tree": "3be0c520fae17689bbf5584e1136fb820caef26f",
      "parents": [
        "1767f908af327fa388b1c66883760ad851267013"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "1767f908af327fa388b1c66883760ad851267013",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "a799b53f10e5a6fd51fef4436cfb7ec99836a516"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349",
      "tree": "defd1cc07d16ad2f3b21154114e092d11c94c5bb",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
