)]}'
{
  "log": [
    {
      "commit": "0df08271fb41e13550a4f2aa1fbdeb76b9a548c6",
      "tree": "d138b39b9f8d644369180651efdd8a3bac41dc1c",
      "parents": [
        "c9aeae27403db86e1ec30c953f1d0fd6ae63b184"
      ],
      "author": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Wed Jul 08 14:57:07 2015 -0700"
      },
      "committer": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Wed Jul 15 10:13:51 2015 -0700"
      },
      "message": "Use fsck.f2fs -a instead of -f for faster boot\n\nand run fsck with -f on clean shutdown instead.\n\nWith -f, fsck.f2fs always performs a full scan of the /data\npartition regardless of whether the partition is clean or not.\nThe full scan takes more than 2 seconds on volantis-userdebug\nand delays the OS boot.\n\nWith -a, the command does almost nothing when the partition\nis clean and finishes within 20-30ms on volantis-userdebug.\nWhen the partition has an error or its check point has\nCP_FSCK_FLAG (aka \"need_fsck\"), the command does exactly the\nsame full scan as -f to fix it.\n\nBug: 21853106\nChange-Id: I126263caf34c0f5bb8f5e6794454d4e72526ce38\n"
    },
    {
      "commit": "84cfd1092d1087a9a4d9f13c2fa2440ecd73f5fc",
      "tree": "ad54d6565bf15b3481371b6a4d8b2586581c15bf",
      "parents": [
        "bce3c0c7bd55e26a5ad4da5257a9621756e15f10"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 29 11:05:18 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 29 11:06:53 2014 -0700"
      },
      "message": "Fix \"ptsname is not thread-safe; use ptsname_r instead\" build break.\n\nChange-Id: I8fdca8e85056e99e943bdcf93a48574d76addcdc\n"
    },
    {
      "commit": "5254c4a448c88bb0056eafe41cef03026a1ebb19",
      "tree": "ef877aafb66c10fc288d0ad6d8b27eddb9387af1",
      "parents": [
        "1e10b661cc5cc58e76540e271e463e94f53c0db8"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Apr 30 09:04:25 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri May 02 14:15:59 2014 -0700"
      },
      "message": "logwrapper: turn on -Werror\n\n- Deal with some -Wunused / -Wunused-variable issues\n\nChange-Id: I27a99ffb962289ebbf04b40870b9404842030d2f\n"
    },
    {
      "commit": "ccecf1425412beb2bc3bb38d470293fdc244d6f1",
      "tree": "9fd922197bc88bed453efa0738f3dfb5d6db4c3c",
      "parents": [
        "e847f429f43ae56aaa406697ca603c8469e2100b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 16 10:53:11 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jan 16 12:54:18 2014 -0800"
      },
      "message": "system/core 64-bit cleanup.\n\nThis cleans up most of the size-related problems in system/core.\nThere are still a few changes needed for a clean 64-bit build,\nbut they look like they might require changes to things like the\nfastboot protocol.\n\nChange-Id: I1560425a289fa158e13e2e3173cc3e71976f92c0\n"
    },
    {
      "commit": "5605cdade8dc8512c54f73863712b62582e6aaf4",
      "tree": "6ca7af3b5b9c0c72a93cbb9830c6d70da8392aa0",
      "parents": [
        "66ed50af6870210ce013a5588a688434a5d48ee9"
      ],
      "author": {
        "name": "William Roberts",
        "email": "wroberts@tresys.com",
        "time": "Thu Nov 21 07:00:38 2013 -0800"
      },
      "committer": {
        "name": "William Roberts",
        "email": "wroberts@tresys.com",
        "time": "Mon Nov 25 17:25:47 2013 +0000"
      },
      "message": "logwrapper: fix missing include\n\nUse of ECHILD with no definitive errno.h inclusion.\n\nExplicitly listing the errno.h header file rather\nthen relying on the inclusion chain to do so.\n\nChange-Id: I5552acd928d17fc62192217a30ff2e4fab0b1936\n"
    },
    {
      "commit": "4eaf905858c6a1d7cf0639bed3e8de3bd7987646",
      "tree": "f787ab75ca22a15793b190de894ca13a7f73d0a5",
      "parents": [
        "887f2892062c64fa688fc9525ebd09cc98ca70d8"
      ],
      "author": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Wed Sep 18 17:49:21 2013 -0700"
      },
      "committer": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Fri Sep 20 17:44:33 2013 -0700"
      },
      "message": "Create a separate copy of the fsck logs\n\nThe log_target parameter of android_fork_execvp_ext() is now a\nbit field, and multiple targets can be set to log to multiple\nplaces at the same time.\n\nThe new target LOG_FILE will log to a file specified by the new\nparameter file_path.\n\nSet LOG_FILE and log to a file in /dev (the only writable filesystem\navilable when e2fsck runs) when invoking e2fsck in fs_mgr.\n\nBug: 10021342\n\nChange-Id: I63baf644cc8c3afccc8345df27a74203b44d0400\n"
    },
    {
      "commit": "96e11b5bc473918d61b088f1840e4d1ec48fd3ab",
      "tree": "9571af9ff057714214028fb7f5d431869580e0a6",
      "parents": [
        "7425fd1b231fcdb3c260877a13f794a0c7361e80"
      ],
      "author": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Wed Apr 03 13:45:10 2013 -0700"
      },
      "committer": {
        "name": "Ken Sumrall",
        "email": "ksumrall@android.com",
        "time": "Sun Apr 14 17:10:55 2013 -0700"
      },
      "message": "logwrapper: Add ability to log to kernel log\n\nAlso add ability to do abbreviated logging where only the first\n4K bytes and last 4K bytes of output are added to the desginated log.\n\nAlso update standalog logwrapper command to support the new options.\n\nChange-Id: Ia49cbe58479b9f9ed077498d6852e20b21287bad\n"
    },
    {
      "commit": "6ad53df6335520befee74efafca41d625baa9023",
      "tree": "9322d7f88f97f808bfe4bccc98c130589ff4dc67",
      "parents": [
        "7bce39cac65166f39d0f26453da6e59e236d2ab5"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Wed Mar 20 13:46:53 2013 -0700"
      },
      "committer": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Wed Mar 20 16:26:22 2013 -0700"
      },
      "message": "liblogwrap: use POLLHUP flag to check when a child dies\n\nReplace the old signal handling mechanism with a check of POLLHUP\nto check when the child has died.\n\nSee http://b/8333626\n\nChange-Id: Ic9909b6660b1c3d1ed3015568b1a1ee1c25afe20\n"
    },
    {
      "commit": "74a7b91cbe29d3a9e6500fb90aae6d9a858dc1f7",
      "tree": "1e769ecf8aca84ec43ff913fc9db301ff01ec6a9",
      "parents": [
        "39b7fdea315bf60c5d1e9ae1ddd4b81e2cf83b23"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Mon Mar 11 14:00:58 2013 -0700"
      },
      "committer": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Thu Mar 14 21:31:07 2013 -0700"
      },
      "message": "liblogwrap: lock android_fork_execvp\n\nAdd a lock around android_fork_execvp to ensure no two threads can\nexecute it at the same time.\n\nThis is to help with http://b/8333626\n\nChange-Id: I75d087a74b58f5b8e878675b301200f54d976fb2\n"
    },
    {
      "commit": "451dd85fb204b5015c461eabc78722abd1c4252a",
      "tree": "f6bc48e94b705e122eff7a537e2b703c83587042",
      "parents": [
        "7398664de30cf953b791ab5aeeb37dfd57410698"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Mon Mar 11 13:19:17 2013 -0700"
      },
      "committer": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Tue Mar 12 08:55:38 2013 -0700"
      },
      "message": "liblogwrap: replace loops with calls to TEMP_FAILURE_RETRY\n\nMakes the code slightly more readable and avoids boilerplate.\n\nChange-Id: I023d9a1e1de729deaec97c62a5ca7983b6918f94\n"
    },
    {
      "commit": "a689d13a19ca729eee1f9a79e181976eabbd79dc",
      "tree": "13c7d741b931e51255f3a0efab0278787079cadf",
      "parents": [
        "4869a68d56aaf3fefd2c1022bdab8571077e063c"
      ],
      "author": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Wed Feb 13 16:31:58 2013 -0800"
      },
      "committer": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Wed Feb 13 16:31:58 2013 -0800"
      },
      "message": "logwrap lib: make logwrapper less verbose when told to not log\n\nWe don\u0027t care about exit codes if logwrap output is not requested.\n\nChange-Id: Ibae5fe53527554a1fe865c2058deb0a128a9dde2\n"
    },
    {
      "commit": "2f34c5033e21fed358a0e07b07c201dc943a1b5d",
      "tree": "854ef477e5db5b89a38c4a08a6c66afbd80fb14e",
      "parents": [
        "c5c410fe3d3dd2f3dce51ed25cdd0a7ac7d5bc8e"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Thu Feb 07 15:43:09 2013 -0800"
      },
      "committer": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Fri Feb 08 09:37:52 2013 -0800"
      },
      "message": "logwrap: Change semantics of NULL status in android_fork_execvp\n\nWhen passing a NULL status to android_fork_execvp the return\nstatus will now be the return value of the child if it exited\nproperly, otherwise a non-0 value will be returned.\n\nChange-Id: I13309c61b37b6b3f9d5507f7d6484e7b6baaf8d0\n"
    },
    {
      "commit": "2a46bfa6b9401b847a3c0609e247428564d91121",
      "tree": "3996ef0c290e72951e54c42f8c61b1689ec9c608",
      "parents": [
        "49f0f776932ec6120d41d8e144247f9d36a01fb5"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Tue Jan 29 11:44:59 2013 -0800"
      },
      "committer": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Wed Jan 30 12:26:05 2013 -0800"
      },
      "message": "logwrapper: rename logwrap() to android_fork_execvp()\n\nAlso change the quiet flag to a logwrap flag (inverses the meaning of\nthe boolean).\n\nChange-Id: I76047a7b460f4c28d52f26bfe3f65889d96047f8\n"
    },
    {
      "commit": "f5200c075098a6fb6a69ac4e2baa2fdd3809cbbd",
      "tree": "79e6730a0154a3f24a8511f5e341879e17c8edcd",
      "parents": [
        "2c3b2e12c15ac130bbfd806404dc735ed1ab8939"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Thu Jan 24 10:57:44 2013 -0800"
      },
      "committer": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Mon Jan 28 16:14:20 2013 -0800"
      },
      "message": "logwrap: add quiet flag to logwrap()\n\nAdd a quiet flag to the logwrap function that prevents messages from\ngetting logged.\n\nChange-Id: Ic56c011fb608babae32b03900b955833a6bdd070\n"
    },
    {
      "commit": "2c3b2e12c15ac130bbfd806404dc735ed1ab8939",
      "tree": "5a53aacfbdf6de3e8b5d13f43b6c2eadae1d16e5",
      "parents": [
        "665118f502baa3d3acaf6aa50c3dd14fdc14779d",
        "ed179d2f98c1628a593aec6d8408b621015f4de5"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Tue Jan 29 00:12:32 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 29 00:13:25 2013 +0000"
      },
      "message": "Merge \"logwrap: Replace sigprocmask with pthread_sigmask\""
    },
    {
      "commit": "665118f502baa3d3acaf6aa50c3dd14fdc14779d",
      "tree": "d8fe5fafc90f5511e996295bec3df0c6d5cd3d57",
      "parents": [
        "99e1966400559f9fcc18174e37ccf8a0e5265ffc",
        "75c289aab9b81dc2235680cf141a4b183ee49391"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Tue Jan 29 00:12:11 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 29 00:12:11 2013 +0000"
      },
      "message": "Merge \"logwrap: wait for child process when receiving SIGINT or SIGQUIT\""
    },
    {
      "commit": "ed179d2f98c1628a593aec6d8408b621015f4de5",
      "tree": "c32ad253c09801427641811d3cd6eb75bef575d1",
      "parents": [
        "75c289aab9b81dc2235680cf141a4b183ee49391"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Wed Jan 16 15:07:30 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 29 00:05:24 2013 +0000"
      },
      "message": "logwrap: Replace sigprocmask with pthread_sigmask\n\nsigprocmask has undefined behavior when called from a thread.\nReplacing with pthread_sigmask to ensure correct behavior if\nlogwrap() gets called from a thread.\n\nChange-Id: I77b6959d345eac8d7b90039ed8144ead8c19a00c\n"
    },
    {
      "commit": "75c289aab9b81dc2235680cf141a4b183ee49391",
      "tree": "ea21b9ff0ad4d435e67b8903a4b5642f8794b7f0",
      "parents": [
        "83dee8e4e5346553f435626b46487d51b1e0ff2d"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Wed Jan 09 10:20:25 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 29 00:04:50 2013 +0000"
      },
      "message": "logwrap: wait for child process when receiving SIGINT or SIGQUIT\n\n- Wait for the child to exit before propagating SIGINT and SIGQUIT\nto the parent\n- Add ignore_int_quit argument to logwrap() that gives the caller the\noption to ignore SIGINT and SIGQUIT while logwrap is running\n\nChange-Id: If5c96cf23094917211310f00aa6aed515f110f5b\n"
    },
    {
      "commit": "99e1966400559f9fcc18174e37ccf8a0e5265ffc",
      "tree": "18bdb5ab96afc619923b8dd966b644fc3109f05d",
      "parents": [
        "83dee8e4e5346553f435626b46487d51b1e0ff2d"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Mon Jan 07 15:50:02 2013 -0800"
      },
      "committer": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Mon Jan 28 15:44:24 2013 -0800"
      },
      "message": "logwrap: ensure child exits with _exit\n\nAlways exit the child process with _exit() rather than exit() to ensure none\nof the parent\u0027s atexit functions get called if the child needs to exit before\ncalling exec.\n\nChange-Id: I6a75111ef1bb3468c114c98743565471cf82c9dd\n"
    },
    {
      "commit": "cfb5ec3c283bb0fd5a99d6ed282a508be309d291",
      "tree": "7a043ee4378c8b9b85cc84996703712c978f7a79",
      "parents": [
        "611f5b4b938f2ffcf2a2e71a847e4fd12587ca4b"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Fri Jan 11 14:56:44 2013 -0800"
      },
      "committer": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Mon Jan 28 13:12:37 2013 -0800"
      },
      "message": "logwrap: remove unnecessary call to setuid/setgid\n\nAndroid allows all users to write to log.\nThe setuid/setgid call is unneeded and could cause unintended\nside effects when called from daemons or programs that need\nto run as root.\n\nChange-Id: I3bdb26eaa4363ef037615e45a1a5cb1ceb4088f3\n"
    },
    {
      "commit": "611f5b4b938f2ffcf2a2e71a847e4fd12587ca4b",
      "tree": "4992df2c91076bfbd1ce6e319ba688bd4acc81ed",
      "parents": [
        "0cc2cab6af2635e3293b3611a4c0982061dbb935"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Mon Jan 14 14:11:01 2013 -0800"
      },
      "committer": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Mon Jan 28 13:11:32 2013 -0800"
      },
      "message": "logwrap: fix off by 1 argument error\n\nFix off by 1 argument parsing error in liblogwrap.\n\nChange-Id: I79832ae338a71c445f9f616d780c577826874386\n"
    },
    {
      "commit": "0cc2cab6af2635e3293b3611a4c0982061dbb935",
      "tree": "7e6b9691707229ab1ac616f52c2a962d5af957d8",
      "parents": [
        "fa341f5b66088afc341a5ca4374e374a54d1afd5"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Wed Jan 16 12:08:04 2013 -0800"
      },
      "committer": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Mon Jan 28 13:08:04 2013 -0800"
      },
      "message": "logwrapper: switch to signal handlers for SIGCHLD\n\nSwitch to a signal handler to monitor SIGCHLD.\nAlso, clean up the exit path and log a warning when the\nprevious SIGCHLD sigaction is not default or ignore.\n\nChange-Id: I7ef7daabee18d80e9e82fba3943cf1d03b504ae3\n"
    },
    {
      "commit": "b58a82295529e775fbb900ecfb2d9104b2dafdc1",
      "tree": "b1eda8cc7f4ba541ed6bc539609a245ae0f592e9",
      "parents": [
        "1b325d196857d29fe5f022f2c574d3625e0adc08"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Wed Jan 09 21:31:25 2013 -0800"
      },
      "committer": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Mon Jan 14 11:11:58 2013 -0800"
      },
      "message": "logwrapper: prevent logwrap from hanging when child dies\n\nSometimes the read on the PTY can wait indefinitely if the child\ndies. By using a poll statement that monitors both the output\nof the child and its state we prevent this from happening.\n\nChange-Id: I51d5556c66f039bca673145ca72db262977e1689\n"
    },
    {
      "commit": "113bd47d619fa36eb5017cbf2c1b6fe677715ed0",
      "tree": "3335b778473fc8e09bea7b69fadb5e9dd4f7ee47",
      "parents": [
        "60efde774d96493483bd948805547680dfd7f41a"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Thu Jan 10 15:21:18 2013 -0800"
      },
      "committer": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Fri Jan 11 13:58:29 2013 -0800"
      },
      "message": "logwrapper: split into liblogwrap and the executable itself\n\nAbstracting the functionality of logwrapper into a library and making\nuse of it for the logwrapper executable.\n\nChange-Id: I2bcf722413f3a8454c6f52137dec86c4477fb8b5\n"
    },
    {
      "commit": "b10c7b4e3daadd0e8fccade8d8064f622b509eef",
      "tree": "293681532335a0d3e4d1aa768224e0202e347135",
      "parents": [
        "d7c52a458e1c93b539ebd94f341f842d32d36937"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Fri Jan 04 16:20:36 2013 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 04 16:21:14 2013 -0800"
      },
      "message": "Revert \"Remove -d option from logwrapper\"\n\nThis reverts commit 4d74bcf4458c4b2c902a3d4f45afbd51f5a3be1e\n\nChange-Id: Ibcd19400cd2589b52df2b3acaba25f02676ba9e0\n"
    },
    {
      "commit": "4d74bcf4458c4b2c902a3d4f45afbd51f5a3be1e",
      "tree": "c12afd1d4b54676a3d51d2d65a9bfe3b947d863f",
      "parents": [
        "2bf496378dbaabe3a49915574b11b1c74032b34a"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Thu Jan 03 14:37:57 2013 -0800"
      },
      "committer": {
        "name": "Rom Lemarchand",
        "email": "romlem@google.com",
        "time": "Thu Jan 03 14:42:05 2013 -0800"
      },
      "message": "Remove -d option from logwrapper\n\nRemoving the ability of logwrapper to die with a SIGSEGV at address\n\"return code from wait\".\n\nChange-Id: I563715db2b1e5e789af84190fc2ff78664d63572\n"
    },
    {
      "commit": "1f28b775cfad4cf3d9112a4ad18603b34fb84fac",
      "tree": "4d52f293d0cec7834925d77e2534e892baa1c33d",
      "parents": [
        "1ea9fce46f9782a21071b683b183226cb3468a0f"
      ],
      "author": {
        "name": "Tanguy Pruvot",
        "email": "tanguy.pruvot@gmail.com",
        "time": "Mon Dec 19 03:53:49 2011 +0100"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Feb 28 13:55:57 2012 -0800"
      },
      "message": "logwrapper: reduce verbosity and fix usage\n\n - no info on normal process exit (0)\n - basename as tag, not the full path\n - fix usage, bad \"-x\" parameter vs \"-d\" in code\n\nChange-Id: Ife72729eaee2a366bd4226f3fbe3ba074219c974\n"
    },
    {
      "commit": "61fbcbe9761bbfdebb0b1f8147faf00cbb1c6e6a",
      "tree": "73699eb5a37568804b31aecc5b26663be1fd6438",
      "parents": [
        "e7b1f132c2a324af89080bc43968b7222b40ddfa"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Oct 12 17:22:43 2011 +0100"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Tue Jan 17 17:56:18 2012 +0000"
      },
      "message": "Rename (IF_)LOG() to (IF_)ALOG()\n\nChange-Id: Ifb82ae2c242becaffa3cf19e548b526e6616c2c7\n"
    },
    {
      "commit": "dd26bb3a00b95dc8448d2d35bcee52c8e1880096",
      "tree": "20dd7f0632254d0f944ac45b4ceb0e68e9c9106c",
      "parents": [
        "0253ffdee4c6ef3652219b1ce07f9db366ca10fa"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu May 13 15:38:49 2010 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu May 13 15:38:49 2010 -0700"
      },
      "message": "Get rid of warnings when compiled with -Wformat-security\n\nChange-Id: I2bfc6582a8198b22af08e4b8d58f532dc138cc02\n"
    },
    {
      "commit": "28a8dab590a5f2e3db4489e162858f386fbcb9e8",
      "tree": "515c98a1e12872e88a2390a61cebcc2fbbb24c06",
      "parents": [
        "2bef93cc20155c3a59cdbb22c564c4b385b2c160"
      ],
      "author": {
        "name": "christian.bejram",
        "email": "christian.bejram@stericsson.com",
        "time": "Thu Feb 11 17:40:45 2010 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon May 10 14:47:56 2010 -0700"
      },
      "message": "Add a printf format.\n\nThis makes sure that data sent through logwrapper\nis interpreted as strings\n\nChange-Id: Ifafa7c3a39433743250aeb76da3c4d9cce05a13f\n"
    },
    {
      "commit": "161b03c7ecf28b360f76007462d852574692e2dc",
      "tree": "f45910a92fdf16589a24032f114707a7e2675022",
      "parents": [
        "b1487e4c587ce1184e3d0036ac5e6bd90405688d"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "",
        "time": "Tue Mar 24 18:36:50 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 18:36:50 2009 -0700"
      },
      "message": "Automated import from //branches/master/...@140824,140824\n"
    },
    {
      "commit": "dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0",
      "tree": "2ba8d1a0846d69b18f623515e8d9b5d9fe38b590",
      "parents": [
        "e54eebbf1a908d65ee8cf80bab62821c05666d70"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:32:55 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:32:55 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "e54eebbf1a908d65ee8cf80bab62821c05666d70",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "a1e1c1b106423de09bc918502e7a51d4ffe5a4ae"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:29:04 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:29:04 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "35237d135807af84bf9b0e5b8d7f8633e58db6f5",
      "tree": "d8bcf3ada2182d248604728285dd80abb466f22a",
      "parents": [
        "4f6e8d7a00cbeda1e70cc15be9c4af1018bdad53"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:08:08 2008 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:08:08 2008 -0800"
      },
      "message": "Code drop from //branches/cupcake/...@124589\n"
    },
    {
      "commit": "4f6e8d7a00cbeda1e70cc15be9c4af1018bdad53",
      "tree": "54fd1b2695a591d2306d41264df67c53077b752c",
      "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"
    }
  ]
}
