)]}'
{
  "log": [
    {
      "commit": "34ea5117dbeba41ae5dfdfb2c2ec8cae23388b66",
      "tree": "aea1d56c13025d3961830eb6fb698d1419f3e06f",
      "parents": [
        "e8870ffc965d553a885f63b26e724da279728b72"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Nov 17 14:56:26 2009 -0800"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Nov 17 14:56:26 2009 -0800"
      },
      "message": "Add support for R_ARM_REL32 to the dynamic linker.\n"
    },
    {
      "commit": "70bba5160f83ecd6251c4539f747ae39e9ed469c",
      "tree": "9828661181ec5a7f7c5e7a29aa112c0b3879f6d8",
      "parents": [
        "18af6efefae2f0dd5d918f16636fb2b401e09a56",
        "763ac28357f604e0e4196e0a7ad5b0f5cdcf274a"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Fri Oct 23 18:38:35 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 23 18:38:35 2009 -0700"
      },
      "message": "am 763ac283: Merge changes Ibcba4b4f,I9af341e1 into eclair\n\nMerge commit \u0027763ac28357f604e0e4196e0a7ad5b0f5cdcf274a\u0027 into eclair-mr2\n\n* commit \u0027763ac28357f604e0e4196e0a7ad5b0f5cdcf274a\u0027:\n  bionic/linker: make the buddy allocator compute max_order on its own\n  bionic/linker: change the buddy allocator to take a handle to the managed area\n"
    },
    {
      "commit": "bb9eedeff4ddc4550991eb4511003bda8672d6c4",
      "tree": "8d3769c0545e031410ba3fa16394a3057016efb8",
      "parents": [
        "af7315acf6a3a5ac329b04cb543b5d8a95dc26f1"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Mon Oct 19 14:25:17 2009 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Mon Oct 19 18:10:35 2009 -0700"
      },
      "message": "bionic/linker: make the buddy allocator compute max_order on its own\n\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "af7315acf6a3a5ac329b04cb543b5d8a95dc26f1",
      "tree": "4a948c38f280ca63a66e06af4f5ea3731775b603",
      "parents": [
        "7e7d6c48a064af82f0ec39f47b9eb803a6e1df4c"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Fri Oct 16 17:50:42 2009 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Mon Oct 19 18:10:35 2009 -0700"
      },
      "message": "bionic/linker: change the buddy allocator to take a handle to the managed area\n\n-- rename struct ba_info to struct ba\n-- move the static ba descriptor from ba.c to linker.c and rename it ba_prelink\n-- ba_init, ba_allocate, ba_free, ba_start_addr, and ba_len all take a pointer\n   to struct ba\n\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "eeaf6544b676f68ccdd70a3fa78f44789a1bf69c",
      "tree": "9e1eb84727088df32f50a63c5f31855693cb2d82",
      "parents": [
        "8213d5c3c072b23f5cc1922d232efe7338091d9b",
        "7934a799e1041db9cff9753f4d87d7361f644450"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 19 17:55:08 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 19 17:55:08 2009 -0400"
      },
      "message": "Merge change I7934a799 into eclair-mr2\n\n* changes:\n  Prevent spurious EINTR to freeze process debugging\n"
    },
    {
      "commit": "7934a799e1041db9cff9753f4d87d7361f644450",
      "tree": "a2cfc78cfaf898f993a1ef9c2556b3cd012dd0fc",
      "parents": [
        "5f32207a3db0bea3ca1c7f4b2b563c11b895f276"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Oct 16 12:13:34 2009 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Oct 16 12:14:04 2009 -0700"
      },
      "message": "Prevent spurious EINTR to freeze process debugging\n"
    },
    {
      "commit": "3c99876116356cae09231189f09e5a679fd0d2fd",
      "tree": "d02eb77976ec9143a153546f78b0dcac93f036ae",
      "parents": [
        "9a96aaa8efcde245ac4ba23228b8a8d61e008d91"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Oct 13 16:55:18 2009 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Oct 13 16:55:18 2009 -0700"
      },
      "message": "Allow the dynamic linker to relocate references to thumb symbols in NDK libraries.\n\nThe lowest bit of the symbol\u0027s value should be ignored when looking at UNDEF symbols\nfor correctness. It is used as an ARM/Thumb flag by the linker.\n"
    },
    {
      "commit": "4a9afcb10151b083cd2d75253385615f459172ed",
      "tree": "8879a1126fce0aa369e13b8db7b8dae0290145ae",
      "parents": [
        "9ea64da6c511e8f9f4edae4c10c20879957631ab"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Tue Sep 29 11:43:20 2009 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Tue Sep 29 14:33:46 2009 -0700"
      },
      "message": "bionic/linker: allow resolving of symbols from library back to executable\n\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "9ea64da6c511e8f9f4edae4c10c20879957631ab",
      "tree": "11adf7525e859f87f980f7836936c30570213446",
      "parents": [
        "6ed80c8814db9eed1fb687be22322e38dc46a2fb"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Mon Sep 28 18:21:30 2009 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Tue Sep 29 14:33:46 2009 -0700"
      },
      "message": "bionic/linker: change lookup() to return soinfo, not base\n"
    },
    {
      "commit": "6ed80c8814db9eed1fb687be22322e38dc46a2fb",
      "tree": "372d444d6f7cba193fdc41ed2fbdf95a0682adc8",
      "parents": [
        "ee223d02d96815c989b62043ff1237b1cd4e14b0"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Mon Sep 28 19:38:04 2009 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Tue Sep 29 14:33:46 2009 -0700"
      },
      "message": "Revert \"Revert \"bionic/linker: fix symbol lookup during relocations\"\"\n\nThis reverts commit 33acbf0719c4f3db059bc9e1f52cf554a5d0295f.\n"
    },
    {
      "commit": "33acbf0719c4f3db059bc9e1f52cf554a5d0295f",
      "tree": "914ca013c2b4979b97c639c301a70c41a4785a4a",
      "parents": [
        "4e5a965d6a4c4a0c7977cc9b90755027130c1e46"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Sep 27 22:04:15 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Sep 27 22:04:15 2009 -0700"
      },
      "message": "Revert \"bionic/linker: fix symbol lookup during relocations\"\n\nThis reverts commit 8d0c0334f1106d36f2fd5c1cf6d5dc75a4b88850.\n"
    },
    {
      "commit": "8d0c0334f1106d36f2fd5c1cf6d5dc75a4b88850",
      "tree": "4f0b57fa3743ec253faac9ced5e4d9586920a633",
      "parents": [
        "bc10cd2900cdb7fed077163b6a33e0f8572b2b19"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Thu Sep 24 17:14:33 2009 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Sun Sep 27 17:18:06 2009 -0700"
      },
      "message": "bionic/linker: fix symbol lookup during relocations\n\nWhen resolving relocations while loading a library, the linker used to find\nsymbols by looking them up in the list of all linked libraries for the current\nprocess, as opposed to following just the library\u0027s DT_NEEDED entries.  This\ncan cause a problem where the symbol is picked up from the wrong library.\n\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "30eb40241c612a7ddbd21c4daa4e7bbfd9d5e89f",
      "tree": "12f9c24ab25aa130fe55b9a64b6139e8346343eb",
      "parents": [
        "ac68b70ed95db959274106d268deca1d303fa15c"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Thu Aug 13 16:05:30 2009 -0700"
      },
      "committer": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Thu Aug 13 16:18:07 2009 -0700"
      },
      "message": "bionic: linker: add error message if link failed due to previous error\n\nSigned-off-by: Erik Gilling \u003ckonkers@android.com\u003e\n"
    },
    {
      "commit": "fde8642fc43bdd224e43e5ee9583a49a758fb03c",
      "tree": "0c722ced21166d5b6a79cc7c0aa14d073934bdd4",
      "parents": [
        "22b5eb858dcbb537f2522ad920ca793348d574a2"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Tue Jul 28 20:28:19 2009 -0700"
      },
      "committer": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Tue Jul 28 20:36:47 2009 -0700"
      },
      "message": "bionic/linker: keep track of opened libraries by basename\n\nPrior to this change, the dynamic loader kept track of opened libraries\neither by their base name (i.e., libfoo.so instead of /system/lib/libfoo.so)\nwhen the shared library was loaded through the DT_NEEDED tag in an ELF header,\nor by whatever name was passed to dlopen(). This created a number of problems,\namong which:\n\n1. dlopen(\"libfoo.so\") and dlopen(\"/path/to/libfoo.so\") would open the same\nlibrary twice;\n2. dlopen(\"/path/to/libfoo.so\") and then dlopen(\"libbar.so\"), where libbar.so\ndepends on libfoo.so, would open libfoo.so twice.\n\nThis patch makes the dynamic loader keep track of each loaded library by\nbasename, which resolves the above ambiguity. The patch also enforces\nlibrary lookup by base name, which means that it will refuse to load another\nlibrary that has the same name.\n\nThanks for the inspiration Iliyan.\n\nSigned-off-by: Erik Gilling \u003ckonkers@android.com\u003e\nCc: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "d00d23a9d4598108d7f498291b35c7730e48cf5c",
      "tree": "1655df6502c82285d5c850c19becead637b10fb9",
      "parents": [
        "39f3745cf30efe38482ffead1c32f4e62f6fe32e"
      ],
      "author": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Wed Jul 22 17:06:11 2009 -0700"
      },
      "committer": {
        "name": "Erik Gilling",
        "email": "konkers@android.com",
        "time": "Wed Jul 22 17:10:39 2009 -0700"
      },
      "message": "linker: remove newlines from DL_ERR so that dlerror works correctly\n\nSigned-off-by: Erik Gilling \u003ckonkers@android.com\u003e\n"
    },
    {
      "commit": "ef0bd1857041ffde069cf52138aaf22c1af7130e",
      "tree": "c61b6ca4b286821ff473533183eba42e7da234a3",
      "parents": [
        "348065586a2e6154d6cff36afa6e00af6bbc5918"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jul 17 17:55:01 2009 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Jul 17 17:55:01 2009 +0200"
      },
      "message": "Pass the elfdata pointer in a slot of the temporary TLS area.\n\nThis is needed to properly initialize the C runtime when libc.so\nis loaded by the dynamic linker.\n\nMove the temporary TLS setup before the first system call, just\nin case something really horrible happens, we won\u0027t crash when\ntrying to write an error code in \u0027errno\u0027\n\nRemove the broken TLS_SLOT_THREAD_ID setup. First, this slot\nshould normally receive the address of a pthread_internal_t,\nnot a kernel thread identifier. Second, it is never used by\nthe linker anyway.\n\nAlso remove an obsolete comment.\n"
    },
    {
      "commit": "bc3a5c26f1b9cf29da6abfc3e197258ef4c03362",
      "tree": "5044c0ebf690e102eef4842d94e81a8d8baf6388",
      "parents": [
        "0353195f344666256dba474a15c9ba22cf0cccc9"
      ],
      "author": {
        "name": "David Bartley",
        "email": "dtb@google.com",
        "time": "Tue Jun 02 18:27:28 2009 -0700"
      },
      "committer": {
        "name": "David Bartley",
        "email": "dtb@google.com",
        "time": "Mon Jun 15 21:36:03 2009 -0700"
      },
      "message": "Add LD_LIBRARY_PATH support to bionic\u0027s linker\n"
    },
    {
      "commit": "0353195f344666256dba474a15c9ba22cf0cccc9",
      "tree": "79ce08ac573c6c5bd7d7a65f7fdc24237c00452a",
      "parents": [
        "2e85579c34047c305caf15fb0ebe02bf3d001d0e"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Fri May 29 17:30:25 2009 -0700"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Mon Jun 01 12:55:48 2009 -0700"
      },
      "message": "linker: Give more context for failures during library dependency resolution.\n\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\n"
    },
    {
      "commit": "2e85579c34047c305caf15fb0ebe02bf3d001d0e",
      "tree": "0fb54231b64d077f94b567acfbae3ecaaec672bc",
      "parents": [
        "49e55332784b82f7112ee7c1ea3c176c9dc32d7a"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Wed May 20 18:28:09 2009 -0700"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Wed May 27 20:16:19 2009 -0700"
      },
      "message": "linker: Make the errors reported by dlopen/dlsym be more useful.\n\nChanged it so that when the linker generates error messages, they are\nscribbled away into a buffer that dlfcn and friends can read from.\n\nSince the error messages are generetad with snprintf, and snprintf\nMAY call malloc during some code paths, we now link against a version\nof libc that does not contain malloc/free/realloc/calloc. We then define\nmalloc and friends in the dynamic loader, and make them abort() if they\nare ever called.\n\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\n"
    },
    {
      "commit": "8215679b355efe3829bab571bd566dc818ea4ccc",
      "tree": "2f69e2ec0c696c19668f8f05ec91b50ad24ebecd",
      "parents": [
        "e5446feb21a991426fb683d077a1a8ca5831ac0f"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon May 18 14:37:41 2009 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue May 26 11:16:28 2009 +0200"
      },
      "message": "Fix the parsing of the .fini_array in the dynamic linker (it should happen in reverse order).\nAlso add a small design overview document for the linker. The latter contains details on\nhow the initialization/finalization is supposed to work.\n"
    },
    {
      "commit": "d1b40d8c69dfca94185ea9231f6cb16f70c02e39",
      "tree": "51044c6b31d8fc43a588c5350ca966d3bccf4ba7",
      "parents": [
        "5e563700380eade647f347669ea61dbb0ede9814"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Tue May 12 10:59:09 2009 -0700"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Tue May 12 10:59:09 2009 -0700"
      },
      "message": "linker: Compute symbol name before lookup so we can also use it for error msg\n\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\n"
    },
    {
      "commit": "ba52b3092f361580a5dea7ab8fbe2a227b55ee43",
      "tree": "471f6de66b75e1659a425a5c6b136fae9763a290",
      "parents": [
        "d2c9dcc9265e66f6432ec39dcc7378b944449e60"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Apr 30 20:37:36 2009 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Apr 30 20:37:36 2009 -0700"
      },
      "message": "Increase the limit of loaded shared libraries from 64 to 96 This change is required for OpenCORE 2.0\nThis is the same as Change 71 in master branch.\n"
    },
    {
      "commit": "5e12d7ec70472659623d2e4552a670d8877f2423",
      "tree": "74046e2007c6720be54a9224cfe4510db4c92be2",
      "parents": [
        "78bf5fc677a2d25d50598b01781eafacdb5e6afe"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "",
        "time": "Tue Mar 24 19:02:00 2009 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 24 19:02:00 2009 -0700"
      },
      "message": "Automated import from //branches/donutburger/...@140950,140950\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": "a799b53f10e5a6fd51fef4436cfb7ec99836a516",
      "tree": "9f06bfedddae069d0388739f5f2779472da5dc7f",
      "parents": [
        "fe5745033a4f397c62a4e00efd9257ac9f83755c"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 14:03:51 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 14:03:51 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@132589\n"
    },
    {
      "commit": "fe5745033a4f397c62a4e00efd9257ac9f83755c",
      "tree": "3be0c520fae17689bbf5584e1136fb820caef26f",
      "parents": [
        "7d9dcdc82a871926e5e3a27143908fa3f4181b5f"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 02 22:54:14 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Mon Mar 02 22:54:14 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@137055\n"
    },
    {
      "commit": "6f04a0f4c72acff80dad04828cb69ef67fa609d1",
      "tree": "915db7d93cb742f72b5d3819e69f48cb29c40a15",
      "parents": [
        "2489551343aa89fc539f369f7689c941b78c08d1"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Feb 19 10:57:29 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Feb 19 10:57:29 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@132276\n"
    },
    {
      "commit": "9f65adf2ba3bb15feb8b7a7b3eef788df3fd270e",
      "tree": "c06064fc9022ef63a40f83a91292103784f49780",
      "parents": [
        "d37527501c85edcb3a6a7c8a0b6297d52d434897"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Feb 10 15:43:56 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Feb 10 15:43:56 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@130745\n"
    },
    {
      "commit": "e5cc1f386b167b9f7bfdebc7219e89aa9b71e4b2",
      "tree": "2cbd43daa6744ed80e833528f8cbfc0c485e5253",
      "parents": [
        "6d6c82c7a0a6b9a89f61b61c66f9b90d9c7177dc"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jan 15 16:12:07 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Jan 15 16:12:07 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@126645\n"
    },
    {
      "commit": "4e468ed2eb86a2406e14f1eca82072ee501d05fd",
      "tree": "4e05b3c66eef86531e464521a3bf96a1864d4bf5",
      "parents": [
        "a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:03:48 2008 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Dec 17 18:03:48 2008 -0800"
      },
      "message": "Code drop from //branches/cupcake/...@124589\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"
    }
  ]
}
