)]}'
{
  "log": [
    {
      "commit": "d548a265ca0d998241443504afdcdc12e1507811",
      "tree": "e9f5413f93bcdba6847848ed98e5594b9ce5e0c1",
      "parents": [
        "ff3c8dfced4205eff7eed3902ddf7076c22763e3"
      ],
      "author": {
        "name": "Doug Kwan",
        "email": "dougkwan@google.com",
        "time": "Thu Dec 03 16:26:04 2009 -0800"
      },
      "committer": {
        "name": "Doug Kwan",
        "email": "dougkwan@google.com",
        "time": "Thu Dec 03 16:26:04 2009 -0800"
      },
      "message": "Add missing symbol type directives.\n"
    },
    {
      "commit": "ecac54db21256952b4b4a9c6f17604ec31743183",
      "tree": "4b1142d9fa5d9c2e557e11d045381f3d60b4e8ba",
      "parents": [
        "9e78de3e3c90ec3c2970431d8eae7378fdc0dac6",
        "3ba822cc3f0a252db73cf63cb8390e46fc0ceb0a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Oct 29 19:53:39 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 29 19:53:39 2009 -0700"
      },
      "message": "am 3ba822cc: am 199f9d92: Improve memcpy performance from 290 MiB/s to 340 MiB/s (17% improvment)\n\nMerge commit \u00273ba822cc3f0a252db73cf63cb8390e46fc0ceb0a\u0027 into eclair-mr2-plus-aosp\n\n* commit \u00273ba822cc3f0a252db73cf63cb8390e46fc0ceb0a\u0027:\n  Improve memcpy performance from 290 MiB/s to 340 MiB/s (17% improvment)\n"
    },
    {
      "commit": "199f9d923804d74e021dd80e48ec75c0a96dba77",
      "tree": "3a00bb9e267cf952d7d1140ff9a39ca07ee6c994",
      "parents": [
        "763ac28357f604e0e4196e0a7ad5b0f5cdcf274a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Oct 28 02:54:37 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Oct 28 03:17:02 2009 -0700"
      },
      "message": "Improve memcpy performance from 290 MiB/s to 340 MiB/s (17% improvment)\n\nuse 64 bytes cache lines, reduce the main loop to 64-bytes instead of\n128 bytes and adjust the prefetch distance to the optimal value.\n"
    },
    {
      "commit": "581f43056b594429b3df4678d87989c93d8f81d2",
      "tree": "785bf3a7c78b3b4d1474505abf2eaab5961c533f",
      "parents": [
        "b3cfdb6220b9ce8ec6d25984ef086fa06f157236",
        "76ef331cd6967ca8f5af779d25c8b634f8cdd2b6"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Oct 19 17:19:37 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 19 17:19:37 2009 -0700"
      },
      "message": "am 76ef331c: am 7e7d6c48: use local symbols in memset so it doesn\\\u0027t screw up profiling\n\nMerge commit \u002776ef331cd6967ca8f5af779d25c8b634f8cdd2b6\u0027 into eclair-mr2-plus-aosp\n\n* commit \u002776ef331cd6967ca8f5af779d25c8b634f8cdd2b6\u0027:\n  use local symbols in memset so it doesn\u0027t screw up profiling\n"
    },
    {
      "commit": "7e7d6c48a064af82f0ec39f47b9eb803a6e1df4c",
      "tree": "08bb1fdfb2b20de55936bec7bd3844cef997e955",
      "parents": [
        "ff7b46b87c4d85881d88c2105a94be6c6accb628"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Oct 19 16:34:38 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Oct 19 16:34:38 2009 -0700"
      },
      "message": "use local symbols in memset so it doesn\u0027t screw up profiling\n"
    },
    {
      "commit": "1f2a381e844abfb364af7cfc48d8a2cb1e194637",
      "tree": "dc4ff7668a6e055688c82b13e8bbc39a9a21f9f4",
      "parents": [
        "5be45ce0cf81a3904c697a77fa3e73bf85aead8b",
        "fdc5c1f56f9d21034badb8e4b092c47098f19613"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Oct 07 11:48:11 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 07 11:48:11 2009 -0700"
      },
      "message": "am fdc5c1f5: Re-enable ARMv7 memcpy implementation.\n\nMerge commit \u0027fdc5c1f56f9d21034badb8e4b092c47098f19613\u0027 into eclair-plus-aosp\n\n* commit \u0027fdc5c1f56f9d21034badb8e4b092c47098f19613\u0027:\n  Re-enable ARMv7 memcpy implementation.\n"
    },
    {
      "commit": "5be45ce0cf81a3904c697a77fa3e73bf85aead8b",
      "tree": "0d88deb6de28ed99750991a765d763c86654e821",
      "parents": [
        "44e55ba8ebd059206bedefba18708af4774db671",
        "1e40783d9ad29c88a4d547774e05080fc4327a2e"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Oct 07 11:42:33 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 07 11:42:33 2009 -0700"
      },
      "message": "am 1e40783d: Fix armv7-user builds by disabling the ARMv7-optimized memcpy.\n\nMerge commit \u00271e40783d9ad29c88a4d547774e05080fc4327a2e\u0027 into eclair-plus-aosp\n\n* commit \u00271e40783d9ad29c88a4d547774e05080fc4327a2e\u0027:\n  Fix armv7-user builds by disabling the ARMv7-optimized memcpy.\n"
    },
    {
      "commit": "fdc5c1f56f9d21034badb8e4b092c47098f19613",
      "tree": "e46fc6ca820662d33e1dd48ff8fd65a84eac7e83",
      "parents": [
        "1e40783d9ad29c88a4d547774e05080fc4327a2e"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Oct 05 14:11:55 2009 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Mon Oct 05 14:25:10 2009 -0700"
      },
      "message": "Re-enable ARMv7 memcpy implementation.\n\nDo not submit this patch before the one that modifies the Android emulator to\nwork-around a weird ARMv7 emulation issue. This is done to temporarily re-allow\nthe -user builds needed for QA.\n"
    },
    {
      "commit": "1e40783d9ad29c88a4d547774e05080fc4327a2e",
      "tree": "d73c841ff9743e0f78ecd410794998eba693d9db",
      "parents": [
        "fe46030cdd97f9cf810630541df367dd2b85cae9"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Oct 02 19:13:27 2009 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Oct 02 19:13:27 2009 -0700"
      },
      "message": "Fix armv7-user builds by disabling the ARMv7-optimized memcpy.\n\nThis is required to work-around some corny bugs in ARMv7 emulation.\n\nThe emulation itself is required to run the dex pre-optimization pass\nfor -user builds.\n"
    },
    {
      "commit": "0893d4918742db3b4bd8ef82c4f3008b60de9e2a",
      "tree": "d27f4a2ed629c14bb2e9ec74aeda6cf766e7b9a0",
      "parents": [
        "2d77d4dbd690e2d85b9795e670c3b94f8233e962",
        "7a9e06fa7e4e533074cde314f25dff3024f34a5d"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Sep 29 15:13:15 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 29 15:13:15 2009 -0700"
      },
      "message": "am 7a9e06fa: Merge change I2a7ad975 into eclair\n\nMerge commit \u00277a9e06fa7e4e533074cde314f25dff3024f34a5d\u0027 into eclair-plus-aosp\n\n* commit \u00277a9e06fa7e4e533074cde314f25dff3024f34a5d\u0027:\n  Fix ABI breakage in libc.so and libm.so between 1.6 and Eclair.\n"
    },
    {
      "commit": "7a9e06fa7e4e533074cde314f25dff3024f34a5d",
      "tree": "415721b383792ec3ea8c45a12f6a924ba504b80a",
      "parents": [
        "ee223d02d96815c989b62043ff1237b1cd4e14b0",
        "2a7ad97539313c82e13d36c9c75cefb2982a87d8"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 29 18:04:51 2009 -0400"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 29 18:04:51 2009 -0400"
      },
      "message": "Merge change I2a7ad975 into eclair\n\n* changes:\n  Fix ABI breakage in libc.so and libm.so between 1.6 and Eclair.\n"
    },
    {
      "commit": "2a7ad97539313c82e13d36c9c75cefb2982a87d8",
      "tree": "273eed8deddcc38c67b86e4a9dc90d966444fefa",
      "parents": [
        "33acbf0719c4f3db059bc9e1f52cf554a5d0295f"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Sep 29 14:43:38 2009 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Sep 29 14:43:38 2009 -0700"
      },
      "message": "Fix ABI breakage in libc.so and libm.so between 1.6 and Eclair.\n\nFor a detailed description of the problem and why this fix is\nneeded, plrease read the comments in libgcc_compat.c\n"
    },
    {
      "commit": "2d77d4dbd690e2d85b9795e670c3b94f8233e962",
      "tree": "f6b1eee82b26ae72026b51c421ef0dd2316eae75",
      "parents": [
        "468fc8c53310b66455f88d47d11775b5995378c5",
        "ee223d02d96815c989b62043ff1237b1cd4e14b0"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Sep 29 13:31:57 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 29 13:31:57 2009 -0700"
      },
      "message": "am ee223d02: NEON optimized memcpy.\n\nMerge commit \u0027ee223d02d96815c989b62043ff1237b1cd4e14b0\u0027 into eclair-plus-aosp\n\n* commit \u0027ee223d02d96815c989b62043ff1237b1cd4e14b0\u0027:\n  NEON optimized memcpy.\n"
    },
    {
      "commit": "ee223d02d96815c989b62043ff1237b1cd4e14b0",
      "tree": "b60fc608c7c0d87da2dfb3015faa3da62fe09335",
      "parents": [
        "33acbf0719c4f3db059bc9e1f52cf554a5d0295f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Sep 27 17:46:43 2009 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Sep 28 19:08:18 2009 -0700"
      },
      "message": "NEON optimized memcpy.\n\n372 MB/s for large transfers, 440 MB/s for smaller ones down to 1KB. 130 MB/s for very small transfers ( \u003c 32 bytes )\nPerformance is similar with non-congruent buffers.\n"
    },
    {
      "commit": "dfa87a200fd3f99e2a8790f2efc12528fba8e756",
      "tree": "96b9e2023148b0377f81cbd57f8f9c3e1c594912",
      "parents": [
        "7e5e9f42706da2f487645a522e907b38fc387910",
        "f355096a64b74c8e869527de55f7e908873e3128"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Sun Sep 27 07:19:59 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Sep 27 07:19:59 2009 -0700"
      },
      "message": "am f355096a: Remove NEON optimizations for memcpy\n\nMerge commit \u0027f355096a64b74c8e869527de55f7e908873e3128\u0027 into eclair-plus-aosp\n\n* commit \u0027f355096a64b74c8e869527de55f7e908873e3128\u0027:\n  Remove NEON optimizations for memcpy\n"
    },
    {
      "commit": "f355096a64b74c8e869527de55f7e908873e3128",
      "tree": "914ca013c2b4979b97c639c301a70c41a4785a4a",
      "parents": [
        "bc10cd2900cdb7fed077163b6a33e0f8572b2b19"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Sun Sep 27 07:08:46 2009 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Sun Sep 27 07:08:46 2009 -0700"
      },
      "message": "Remove NEON optimizations for memcpy\n"
    },
    {
      "commit": "4a05d12cf52a9a40759f11f28543bd75715c8f00",
      "tree": "2d0beafae4775320beea102649b491b05fa50f8e",
      "parents": [
        "916edf2a3fc60e08a5f29cd322d9f2a04d15cb49"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Fri Sep 18 13:35:05 2009 -0700"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Sep 22 10:03:59 2009 -0700"
      },
      "message": "Fix TLS access for ARMv6 and beyond.\n\nFor performance reasons, we don\u0027t call the kernel helper. Instead, we directly\naccess the TLS register on ARMv6 and higher. For ARMv5TE, keep using the hard-coded\naddress populated by the kernel on each task switch.\n\nNOTE: Since we don\u0027t call the kernel helper, this must precisely match your\n      kernel configuration. This is controlled by setting the ARCH_ARM_HAVE_TLS_REGISTER\n      variable to \u0027true\u0027 in your board configuration file.\n"
    },
    {
      "commit": "b8a18d059b8bde9a04e5778a0074a54413328472",
      "tree": "809bf4ad3a8790fa09859f480aa7bc217a199eaf",
      "parents": [
        "cdeb4c8afa2fb7b92cce3b32a9d2f3c05ad759ba",
        "bd192b470b69e00e9313680b70c5572a609e535d"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Tue Sep 15 14:51:10 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 15 14:51:10 2009 -0700"
      },
      "message": "am bd192b47: Add stack unwinding directives to assembly leaf functions.\n\nMerge commit \u0027bd192b470b69e00e9313680b70c5572a609e535d\u0027 into eclair-plus-aosp\n\n* commit \u0027bd192b470b69e00e9313680b70c5572a609e535d\u0027:\n  Add stack unwinding directives to assembly leaf functions.\n"
    },
    {
      "commit": "bd192b470b69e00e9313680b70c5572a609e535d",
      "tree": "61d3575f3195acab886e3fe74388ff45b76fb539",
      "parents": [
        "824201294b5f3c3ad6ca9d9751d96f78142c5409"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Tue Sep 15 13:41:14 2009 -0700"
      },
      "committer": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Tue Sep 15 13:41:14 2009 -0700"
      },
      "message": "Add stack unwinding directives to assembly leaf functions.\n\nSo that the real culprit of native crashes can surface in the stack trace.\n"
    },
    {
      "commit": "cdeb4c8afa2fb7b92cce3b32a9d2f3c05ad759ba",
      "tree": "c92b4205ab7379cf157a88b8e9709794e70119fd",
      "parents": [
        "664dac1e959dda5f017571d52ab4a34891800927",
        "76ec6891e2bc18c9e12cd2f567358bb817b24cff"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Sep 15 07:51:39 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Sep 15 07:51:39 2009 -0700"
      },
      "message": "merge from open-source master\n"
    },
    {
      "commit": "76ec6891e2bc18c9e12cd2f567358bb817b24cff",
      "tree": "4623c956fcb7404faeb72a347620ce65406276a0",
      "parents": [
        "a90528ad3420c571987f2124955646dae88007b6"
      ],
      "author": {
        "name": "vinay harugop",
        "email": "vinay.harugop@stericsson.com",
        "time": "Wed Sep 09 20:53:39 2009 +0530"
      },
      "committer": {
        "name": "vinay harugop",
        "email": "vinay.harugop@stericsson.com",
        "time": "Wed Sep 09 21:01:46 2009 +0530"
      },
      "message": "ARM architecture reference manuals for ARMv6 \u0026 ARMv7 state that the use of \u0027swp\u0027 instruction is deprecated\nARMv6 onwards. These architectures provide the load-linked, store-conditional pair of ldrex/strex whose use\nis recommended in place of \u0027swp\u0027. Also, the description of the \u0027swp\u0027 instruction in the ARMv6 reference\nmanual states that the swap operation does not include any memory barrier guarantees.This fix attempts to\naddress these issues by providing an atomic swap implementation using ldrex/strex under _ARM_HAVE_LDREX_STREX\nmacro.  This Fix is verified on ST Ericsson\u0027s U8500 platform and Submitted on behalf of a third-party:\nSurinder-pal SINGH from STMicroelectronics.\n"
    },
    {
      "commit": "1bbc56cd227546cb155bb47721cdb717780a3400",
      "tree": "d8fa2782b57382a9f94eb4cd51113c842d67eab7",
      "parents": [
        "898cc98f3d6536f7ae1b38340537edecf9a529f2"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Aug 26 21:50:42 2009 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Sep 02 23:21:52 2009 +0200"
      },
      "message": "Neon-optimized versions of memcpy.\n\nThis optimization come from the external 0xdroid repository.\nOriginal patch can be found here:\n\nhttp://gitorious.org/0xdroid/bionic/commit/ebafe41c2c02f8c09a3c1d7746047083df180ac5\n"
    },
    {
      "commit": "3a654b1e04d4275ae315cfe1b196998acf10052c",
      "tree": "79ce08ac573c6c5bd7d7a65f7fdc24237c00452a",
      "parents": [
        "03eabfe65e1e2c36f4d26c78a730fa19a3bdada3"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jun 03 19:32:37 2009 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Wed Jun 03 19:32:37 2009 +0200"
      },
      "message": "Revert \"Fix the C library initialization to avoid calling static C++ constructors twice.\"\n\nThis reverts commit 03eabfe65e1e2c36f4d26c78a730fa19a3bdada3.\n"
    },
    {
      "commit": "03eabfe65e1e2c36f4d26c78a730fa19a3bdada3",
      "tree": "b965ea27e54b0833639227c619f6e35647c92510",
      "parents": [
        "0353195f344666256dba474a15c9ba22cf0cccc9"
      ],
      "author": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Thu May 28 15:54:03 2009 +0200"
      },
      "committer": {
        "name": "David \u0027Digit\u0027 Turner",
        "email": "digit@google.com",
        "time": "Tue Jun 02 23:27:44 2009 +0200"
      },
      "message": "Fix the C library initialization to avoid calling static C++ constructors twice.\n\nThe problem was due to the fact that, in the case of dynamic executables,\nthe dynamic linker calls the DT_PREINIT_ARRAY, DT_INIT and DT_INIT_ARRAY\nconstructors when loading shared libraries and dynamic executables,\n*before* calling the executable\u0027s entry point (i.e. arch-$ARCH/bionic/crtbegin_dynamic.c)\nwhich in turns call __libc_init() in libc.so, as defined by bionic/libc_init_dynamic.c\n\nThe latter did call these constructors array again, mistakenly.\n\nThe patch also updates the documentation of many related functions.\n\nAlso adds a new section to linker/README.TXT explaining restrictions on\nC library usage.\n\nThe patch has been tested on a Dream for stability issues with\nproprietary blobs:\n\n- H264 decoding works\n- Camera + Video recording works\n- GPS works\n- Sensors work\n\nThe tests in system/extra/tests/bionic/libc/common/test_static_cpp_mutex.cpp has been\nrun and shows the static C++ constructor being called only once.\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": "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": "6d6c82c7a0a6b9a89f61b61c66f9b90d9c7177dc",
      "tree": "8de86895228b63728c3a134c8b1fcab003db467d",
      "parents": [
        "4e468ed2eb86a2406e14f1eca82072ee501d05fd"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jan 09 17:50:54 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jan 09 17:50:54 2009 -0800"
      },
      "message": "auto import from //branches/cupcake/...@125939\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"
    }
  ]
}
