)]}'
{
  "log": [
    {
      "commit": "8f7b8a1f6c5808ea205bfb3294a313e2bcaedf7f",
      "tree": "9ed3dfd1f059e1b87dc169a27159224eeda82c55",
      "parents": [
        "e71ecb2c4df15f727f51a0e1b65459f071853e35"
      ],
      "author": {
        "name": "Sergio Giro",
        "email": "sgiro@google.com",
        "time": "Thu Jul 21 14:44:07 2016 +0100"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Thu Aug 25 12:04:40 2016 +0200"
      },
      "message": "Unicode: specify destination length in utf8_to_utf16 methods\n\nChange-Id: I5223caa7d42f4582a982609a898a02043265c6d3\n"
    },
    {
      "commit": "c3ab1b7c0ac255d26545a44b47d50de5b1c90ded",
      "tree": "e48be220b492d9c39342d7e7d19156be7bd4e056",
      "parents": [
        "4095ac603dc4b39d844a1a795e7c9eee4ccb5557",
        "464bda8a2bd4ec61ec0ac9ba1e9a90ca4c5f8890"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jun 15 22:44:43 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jun 15 22:44:43 2016 +0000"
      },
      "message": "Merge \\\"ResourcesManager: Allow managed addition of library asset paths\\\" into nyc-dev\nam: 464bda8a2b\n\nChange-Id: I352c56482aca030efab49ca39301679b51e44e05\n"
    },
    {
      "commit": "25f48886b2bc2f4edc65d80ff836561853b7ed50",
      "tree": "b9e486ce46482b01c5edcdddf2206e4e5f019a08",
      "parents": [
        "d749245b88456fcec8be1b93528e179d3a2d61aa"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jun 14 11:05:23 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Jun 15 12:00:18 2016 -0700"
      },
      "message": "ResourcesManager: Allow managed addition of library asset paths\n\nThis allows WebView to add itself to the ResourcesManager and\nremain their even after configuration changes and multi-window\nchanges.\n\nBug:29112218\nChange-Id: I2cb131ae2c61fb58c48babafdd46c1882be96aa9\n"
    },
    {
      "commit": "bffbb765d70deb832a4181b8d64e7b68991c147f",
      "tree": "bef8ed005ff38539d658ee80d9860f1135f82618",
      "parents": [
        "89770ebf62d8a15dc899f89f29a541fbb839ee69",
        "3765d34d364e76817e9dbea55819df86d858df10"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Sat May 21 00:13:37 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat May 21 00:13:37 2016 +0000"
      },
      "message": "Merge \"Performance improvements in AssetManager\" into nyc-dev\nam: 3765d34d36\n\n* commit \u00273765d34d364e76817e9dbea55819df86d858df10\u0027:\n  Performance improvements in AssetManager\n\nChange-Id: Id552f8bc9753f2d336ab2e9cf1f05d5e5b2a2409\n"
    },
    {
      "commit": "76da37e1cf5c1381d9ccbaca86463fca52bd40f5",
      "tree": "1f81253db8a6e991f23fc30f5b71f88952100565",
      "parents": [
        "df9dee869c9efa18619b28691c88415b4f115df7"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu May 19 18:25:28 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri May 20 15:04:09 2016 -0700"
      },
      "message": "Performance improvements in AssetManager\n\nChange the implementation of getLocales() to iterate the set of\nconfigurations using a templated method, instead of using the result\nof getConfigurations().\n\nAlso remove the check for AndroidManifest.xml when adding an asset path.\nThis is unneccessary.\n\nBug:28625993\nChange-Id: I16de5da598d0c371421d1dc8eee054dce9baf53a\n"
    },
    {
      "commit": "d5bb8487d58b168543d6504504d8e89e062a6b8b",
      "tree": "04141ad55e6024f3f2ab8fdb95f6ff7d4e0a9e4d",
      "parents": [
        "03df42268995e3742aeb42ee6a77048dcc8fd889",
        "f55c9f7aa64660712242705d4e5e89e2191bbf69"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu May 19 23:34:58 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu May 19 23:34:58 2016 +0000"
      },
      "message": "Merge \"Fix misc-macro-parentheses warnings in aapt and androidfw.\" am: 6f4b566169\nam: f55c9f7aa6\n\n* commit \u0027f55c9f7aa64660712242705d4e5e89e2191bbf69\u0027:\n  Fix misc-macro-parentheses warnings in aapt and androidfw.\n\nChange-Id: I23f28430cf242be3f77926016626ea3e5705d4ec\n"
    },
    {
      "commit": "e819d01e3e120844e95cc4c534382d20d2beb623",
      "tree": "d2d192e309391e5c132f7be7de4a472bb290e44e",
      "parents": [
        "4bc3d32b15cdcae7685722e7a20007c7aa9ae949"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu May 19 15:19:22 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu May 19 15:19:22 2016 -0700"
      },
      "message": "Fix misc-macro-parentheses warnings in aapt and androidfw.\n\nBug: 28705665\nChange-Id: Iac353e66718aadad384183cf300330695df25909\n"
    },
    {
      "commit": "63d0964fc0b638fac1d144ce57a1f2ae5dde8bfd",
      "tree": "cd51785f8146231a84920bf430e9e52df44998aa",
      "parents": [
        "0024c91409ae7c137ede27d10f67331720cede43",
        "47521a66314555e2450192a77e75ccbeb19acbb0"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed May 11 00:11:53 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed May 11 00:11:53 2016 +0000"
      },
      "message": "Merge \"Resource shared libraries: fix theme references\" into nyc-dev\nam: 47521a6631\n\n* commit \u002747521a66314555e2450192a77e75ccbeb19acbb0\u0027:\n  Resource shared libraries: fix theme references\n\nChange-Id: Ie0265ea7652bb29d017eedae16ecff85c665d71f\n"
    },
    {
      "commit": "8ac51d14b614ba6a12df2ba90d50a01f50d548aa",
      "tree": "b2afded5a45d6c5d14569b6691354d1613c1eb81",
      "parents": [
        "b42afe9be02b23c50c0479e93df2a853be7c369a"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue May 10 10:01:12 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue May 10 10:45:52 2016 -0700"
      },
      "message": "Resource shared libraries: fix theme references\n\nTheme values that would reference other theme values would not work\nif they were declared in a shared library.\n\nWe now introduce a parallel resource type to TYPE_DYNAMIC_REFERENCE,\nTYPE_DYNAMIC_ATTRIBUTE, which allows us to lookup and resolve\ntheme value references from shared libraries.\n\nBug:28687378\nChange-Id: I4f2364e3e8b567679f90784fcaaea12b6b05e926\n"
    },
    {
      "commit": "85e0c89ba55188ecc484538efbfdb570606fc1a2",
      "tree": "9e5d618c4446b2e4933b2035b77c8fb846062f93",
      "parents": [
        "237790ec48e83d1623ce44dd968e15059121df56",
        "1599b981fae5e606713e6c9a1698a7e36ef5ae09"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Apr 28 12:08:15 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Apr 28 12:08:15 2016 -0700"
      },
      "message": "resolve merge conflicts of 1599b981 to nyc-dev-plus-aosp\n\nChange-Id: I90807581e10b6a0024515ff634ac8b29eaa5fc9f\n"
    },
    {
      "commit": "6e35557ad34a9722c27a70b30930104c2f36f78b",
      "tree": "9c5006ca3f4864bbf6c9b901bba8468ded4ca897",
      "parents": [
        "3f0355f972fe6a0d069024ff30188314a79fcc55",
        "c6baf563ba6aa207a48317c177b29f1d2b70cf3d"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Apr 28 18:47:00 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 28 18:47:00 2016 +0000"
      },
      "message": "Merge \"Fix google-explicit-constructor warnings.\""
    },
    {
      "commit": "7134ce35406f942dd640a95583430b39e770f0da",
      "tree": "8e20bbd6fcb41e4af7bacc93c4dc08f4a3e08cc9",
      "parents": [
        "5bddeaa9bce6325c900eeabaa6a1cdfaf83910c6"
      ],
      "author": {
        "name": "Shammi Khattar",
        "email": "skhattar@codeaurora.org",
        "time": "Wed Apr 06 15:33:03 2016 -0700"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Apr 28 15:07:34 2016 +0000"
      },
      "message": "ZipUtils: Fix wrong timestamps when getEntryInfo\n\n\"tm_mon\" format should align with \"ZipEntry::setModWhen\" in aapt.\n\"tm_isdst\" should be initialized, or it will because random value\nand cause error in function mktime().\n\nBUG:28021145\n\n(cherry picked from commit bb0eb3f4cb33c077b296a18555a9a1a966ff696b)\n\nChange-Id: Ia39cf63fcd4bb39c24af080562960279106f526c\n"
    },
    {
      "commit": "e53f65897d03776d2ca3a3f99d29fad105c33441",
      "tree": "99af966f9b955fcfe6ba017d34238b045bee6ae7",
      "parents": [
        "1463173c9bd6ade4b4d7b3fdf2fd0b7d8e569254",
        "b7dd1026f3ee076a5620aeb09125719147c99116"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Apr 28 12:26:53 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 28 12:26:53 2016 +0000"
      },
      "message": "Merge \"ZipUtils: Fix wrong timestamps when getEntryInfo\" am: 3f0355f\nam: b7dd102\n\n* commit \u0027b7dd1026f3ee076a5620aeb09125719147c99116\u0027:\n  ZipUtils: Fix wrong timestamps when getEntryInfo\n\nChange-Id: I964fcec6b7b88dae0d2b53cafe40707f814271ca\n"
    },
    {
      "commit": "1ead474f61fb3fe7d77ccdd8e65037fb8c93ad6d",
      "tree": "a21478316f777b9fb134798a12c962a28dfd265a",
      "parents": [
        "4dd00e93f300a50097c1ec09ca291849830e98dc"
      ],
      "author": {
        "name": "Shammi Khattar",
        "email": "skhattar@codeaurora.org",
        "time": "Wed Apr 06 15:33:03 2016 -0700"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Apr 28 12:13:16 2016 +0000"
      },
      "message": "ZipUtils: Fix wrong timestamps when getEntryInfo\n\n\"tm_mon\" format should align with \"ZipEntry::setModWhen\" in aapt.\n\"tm_isdst\" should be initialized, or it will because random value\nand cause error in function mktime().\n\nBUG:28021145\nChange-Id: I1e8d5c14e5d7b875bf9cd940cb7f4c5b93a1bcd6\n"
    },
    {
      "commit": "c6baf563ba6aa207a48317c177b29f1d2b70cf3d",
      "tree": "38cb5ab3e8ce0ebe0bcdace644378ad037adb37f",
      "parents": [
        "cd4f7e12037acd16f500dc9a4be98e51fe58a11b"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Apr 27 11:29:23 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Apr 27 11:38:12 2016 -0700"
      },
      "message": "Fix google-explicit-constructor warnings.\n\nBug: 28341362\nChange-Id: Ibdd6a210bb7ff228e3624cc319169f77aca3b51e\n"
    },
    {
      "commit": "da749ed997644b2ad5e3643768c13f92e839db62",
      "tree": "9ca60a5dc69bf669a567d433186301ca5f374649",
      "parents": [
        "bdf90a2d1c357cb6ebfa0101b06821553d7cd120",
        "b53e8a7a8aa495289ab2872032f80501edd472ef"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Apr 21 19:15:47 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 21 19:15:47 2016 +0000"
      },
      "message": "Merge \"Fix order of operation issue with ResStringPool\" into nyc-dev\nam: b53e8a7a8a\n\n* commit \u0027b53e8a7a8aa495289ab2872032f80501edd472ef\u0027:\n  Fix order of operation issue with ResStringPool\n\nChange-Id: Idaca4dee242389680b82b9d58728d281a65f9116\n"
    },
    {
      "commit": "666b6fbba15dec2a29a40c11ddb3aa590eb9d1b0",
      "tree": "64b391aebb73bd3688d2f39960532b4112215bc4",
      "parents": [
        "3053c3f2a94b24ceeed9c46cb84045c285d3523b"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Apr 21 10:05:06 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Apr 21 10:05:06 2016 -0700"
      },
      "message": "Fix order of operation issue with ResStringPool\n\nDue to ! taking precedence over bitwise \u0026, the condition for\nchecking non-null terminated string blocks is incorrect.\n\nAdds parentheses for the correct behavior.\n\nBug:28288210\nChange-Id: Ie31fa239e5f869e6bb28deb6ae190f41f1aa4d92\n"
    },
    {
      "commit": "af2758a962179826b1945c4b31728d89377281a3",
      "tree": "23edc39d1ea7f7eb4c325c95447f9a0ef07bd5ec",
      "parents": [
        "06c88414837784b84bf8b6daaa36499b3e52657e",
        "bfdc2020b94d6368a7a8cf97bf545d28c757e0fd"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Apr 18 22:35:27 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Apr 18 22:35:27 2016 +0000"
      },
      "message": "Merge \"Optimize ResTable::getLocales() to improve bindApplication performance\" into nyc-dev\nam: bfdc202\n\n* commit \u0027bfdc2020b94d6368a7a8cf97bf545d28c757e0fd\u0027:\n  Optimize ResTable::getLocales() to improve bindApplication performance\n\nChange-Id: I5148dabc722ec2c31008ba05adb3ccdfa357857a\n"
    },
    {
      "commit": "b7e1ce07756aaca829828c2053eca0d66dd4d440",
      "tree": "5e985290e92e597d7aa7409915688d73d2352080",
      "parents": [
        "9d1d006cb3fb85304d1002b0d71c1b9fa11ad2f6"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Apr 11 20:03:01 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Apr 18 15:06:50 2016 -0700"
      },
      "message": "Optimize ResTable::getLocales() to improve bindApplication performance\n\nChange from linear searching for uniqueness to binary search.\n\nBug:27198799\nChange-Id: I1ccb6e93cc213810848f07d631d9d8de7c719803\n"
    },
    {
      "commit": "62047f93d4948b5b5be1939c0700d12b960379a3",
      "tree": "a7da7b7ba4e321fdd60e71915e8ca576ccc9b598",
      "parents": [
        "afdb3c3163d9b82d88c89e2c2658042e32bb5999",
        "117cff790e34948e847d724be624ed2dd00bc82c"
      ],
      "author": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Thu Apr 14 23:58:22 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 14 23:58:22 2016 +0000"
      },
      "message": "Merge \"Revert \"Optimize ResTable::getLocales() to improve bindApplication performance\"\" into nyc-dev\nam: 117cff7\n\n* commit \u0027117cff790e34948e847d724be624ed2dd00bc82c\u0027:\n  Revert \"Optimize ResTable::getLocales() to improve bindApplication performance\"\n\nChange-Id: I86b5cc6eddf38cdd015fe80f1180ca246a97352a\n"
    },
    {
      "commit": "98e80076c6c4e31f04c580c8774eeea4036d32c1",
      "tree": "dfd7fc79f951ae1c5f93300f08c5debbef45e5ec",
      "parents": [
        "4ecc096b625dce65970b785f156d24d32cff5e64"
      ],
      "author": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Thu Apr 14 15:44:35 2016 -0700"
      },
      "committer": {
        "name": "Tim Murray",
        "email": "timmurray@google.com",
        "time": "Thu Apr 14 16:06:29 2016 -0700"
      },
      "message": "Revert \"Optimize ResTable::getLocales() to improve bindApplication performance\"\n\nThis reverts commit 5520581b5f043fb858b5b2044ff33ad8545a6d38.\n\nbug 28189634\n\nChange-Id: I2d2b859f6d9bd44434fa901cce990583f514980c\n"
    },
    {
      "commit": "eaf83ef61b33383ae47d1e2e96e99d7d312d2d3b",
      "tree": "75a7e966f88dd27538e47f065e475c4706534851",
      "parents": [
        "747f3992e3667cf1f71992dadf54c6088fea6d1f",
        "b5abb78b7c329069d5d5e7fd9c6a6e5e81f79c90"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Apr 13 22:25:45 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 13 22:25:45 2016 +0000"
      },
      "message": "Merge \"Optimize ResTable::getLocales() to improve bindApplication performance\" into nyc-dev\nam: b5abb78\n\n* commit \u0027b5abb78b7c329069d5d5e7fd9c6a6e5e81f79c90\u0027:\n  Optimize ResTable::getLocales() to improve bindApplication performance\n\nChange-Id: I9b2e5d8488f15a400287f8cfacc3531bdb007068\n"
    },
    {
      "commit": "5520581b5f043fb858b5b2044ff33ad8545a6d38",
      "tree": "ae32bf44e2c1bd7b12fbb5136399c72c8d30dc7d",
      "parents": [
        "1ee2dd2f5fb10cd0e6a4d3d368c1e24d3ec417a2"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Apr 11 20:03:01 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Apr 13 13:25:09 2016 -0700"
      },
      "message": "Optimize ResTable::getLocales() to improve bindApplication performance\n\nChange from linear searching for uniqueness to binary search.\n\nBug:27198799\nChange-Id: Ifa4672929df286c4693ab1f77716f08945941b0c\n"
    },
    {
      "commit": "63c168acf7a99a0120566a0a09a40ae04c789c5a",
      "tree": "649e8cca9ad30b616963843821d4b0eca3e2ff65",
      "parents": [
        "ba23e453487fcb18e91b4919b933012458f17fdd"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Fri Dec 04 17:59:42 2015 +0000"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Fri Apr 08 16:55:02 2016 +0200"
      },
      "message": "Add choreographer API to the NDK.\n\nChange-Id: Icb8cffd3cd3bd06814466be72db3e26f6a62cbc6\n"
    },
    {
      "commit": "617608769d3543085d55f460e00528e7388bc5de",
      "tree": "b0899f115d3e54736006b0a6f3693c6c01b11a8d",
      "parents": [
        "2258c96b33e5283fdb7a709472b9deee5e48f06a",
        "30cadc25293b82c6f142ead81ef10563ed52bf99"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Mar 30 23:39:02 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Mar 30 23:39:02 2016 +0000"
      },
      "message": "Merge \"AAPT2: Suppress warnings from libandroidfw when built for host\" into nyc-dev\nam: 30cadc2\n\n* commit \u002730cadc25293b82c6f142ead81ef10563ed52bf99\u0027:\n  AAPT2: Suppress warnings from libandroidfw when built for host\n\nChange-Id: I53cdedcfb71db41226d6bb07c3e2a8cca70b8320\n"
    },
    {
      "commit": "1d7172e598d428581d6fc38b57a454cec66eda5a",
      "tree": "11a50c93342434948232cc230c3ad3ea5ccd9679",
      "parents": [
        "d17f96ae007179007765c0f75b6bffb13c9285cb"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Mar 30 16:22:33 2016 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Mar 30 16:22:33 2016 -0700"
      },
      "message": "AAPT2: Suppress warnings from libandroidfw when built for host\n\nCertain error cases are expected (like not finding a package) when\nusing libandroidfw on the host side for AAPT2. Suppress those warnings\nand let AAPT2 handle error cases.\n\nChange-Id: I3de97128686c03c89c5b99559bf46d4f2f1dfe4d\n"
    },
    {
      "commit": "d949f59be5e8e5965c98e45c91ddafdd788e3199",
      "tree": "a04c7d024129d08c5b207bc5d2ad0fb30a83c139",
      "parents": [
        "7f5a0fba663d929753845ec2db778fd000c3f5a4",
        "960b9441cfcee7f214b1733641da58ff4292eda1"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Mar 10 05:11:50 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Mar 10 05:11:50 2016 +0000"
      },
      "message": "Merge \"AssetManager: Cache a pre-filtered list of configurations\" into nyc-dev\nam: 960b9441cf\n\n* commit \u0027960b9441cfcee7f214b1733641da58ff4292eda1\u0027:\n  AssetManager: Cache a pre-filtered list of configurations\n"
    },
    {
      "commit": "ff5808d223d6359448afc532717b8ccfdc5182d8",
      "tree": "39db02737ed994b392e44838612d7ec610f1edd4",
      "parents": [
        "0dd17c840645e6d1fd67276b45420ca742df6110"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Feb 23 17:49:53 2016 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Wed Mar 09 17:33:14 2016 -0800"
      },
      "message": "AssetManager: Cache a pre-filtered list of configurations\n\nWhen we set the parameters for a ResTable, we can pre-filter which\nresources match and only look at that smaller list when getting entries.\nThis helps A LOT with types that have many configurations, like strings\nand all their various locales.\n\nWe must store the cached entries in a parallel data structure because parts\nof the main Type object are shared with other ResTables, causing data races.\n\nBug:25499111\nChange-Id: I63e37dcbd683fc9f1e7d0f3a6ed4c1c01e0fc575\n"
    },
    {
      "commit": "5c9214ac0b131f87150aadec9a75bc2f5ad11d05",
      "tree": "5b48704f76bd700a092fbb25a431aad9ddf91a8b",
      "parents": [
        "6bb63dc3396795e0e895460339874acfc3824912",
        "aca700435a1ca1d32208c48af72b64e11d730b07"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Mar 08 07:48:52 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Mar 08 07:48:52 2016 +0000"
      },
      "message": "Merge \"Cleanup uses of sprintf so we can deprecate it.\" am: 5a3ac10568\nam: aca700435a\n\n* commit \u0027aca700435a1ca1d32208c48af72b64e11d730b07\u0027:\n  Cleanup uses of sprintf so we can deprecate it.\n"
    },
    {
      "commit": "53185a50d18239088f5a2f3cf9a11a6da7a286fb",
      "tree": "26cc3c3216f092f7e96cb29970a8dd0ec0828ef3",
      "parents": [
        "310355d28e73ff4192e597b99af202a9045fa7e2",
        "fa7d78ae872b8b96ac4a6f945da0627707b00798"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Mar 07 20:22:23 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 07 20:22:24 2016 +0000"
      },
      "message": "Merge \"Revert \"AssetManager: Cache a pre-filtered list of configurations\"\" into nyc-dev"
    },
    {
      "commit": "fa7d78ae872b8b96ac4a6f945da0627707b00798",
      "tree": "6d35b8d1190dc8b8c4c72df05d688a6d7b2946c9",
      "parents": [
        "d4b169173ad7805369204277580d3942cb08174a"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Mar 07 19:39:56 2016 +0000"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Mar 07 19:39:56 2016 +0000"
      },
      "message": "Revert \"AssetManager: Cache a pre-filtered list of configurations\"\n\nThere is a race due to the modification of shared data structures in the framework ResTable.\n\nSee b/27499488\n\nThis reverts commit d4b169173ad7805369204277580d3942cb08174a.\n\nChange-Id: I3f400a2ad3b5ffc652b84dd5fe777f7cf34b5548\n"
    },
    {
      "commit": "7960898f6f886aadda1dd3d7a89106dde9f44217",
      "tree": "a69917218d192b8050ffeb70b39e0cfaee75c32e",
      "parents": [
        "ba5c35b79731e91edc4d452d5e6b49a8b5434a55"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Thu Mar 03 15:06:46 2016 -0800"
      },
      "committer": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Thu Mar 03 15:19:37 2016 -0800"
      },
      "message": "Fix script-related parts of locale resource matching\n\nPreviously, a bit was kept to find if the script of a locale was\nexplicitly \"provided\" in a resource. This was not backward\ncompatible, and failed in some edge cases when the package was\ncreated with older versions of AAPT that did not set the bit.\n\nThe cases would happen when the old resource had an explicit script\nspecified in its locale, but since the \"provided\" bit was not set in\nthe package, we would assume that the script was computed by us.\n\nThis CL replaces the \"provided\" bit with a \"computed\" bit, so the\ndefault value of the bit (set to \"false\" for old packages) would be\ncorrect.\n\nBug: 27156990\nChange-Id: I99e7f1ad8f70c90e25ab3640ed34cc1a6f8d1d64\n"
    },
    {
      "commit": "a346f5458a4d9e9ea8159a38ae5f696f19cf125b",
      "tree": "379a8a2df4dca633015cfa996c41516779e9c3d6",
      "parents": [
        "b21cb13010d903e84ed34a94e87a348c891dd587"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Wed Mar 02 13:34:44 2016 -0800"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Wed Mar 02 13:34:44 2016 -0800"
      },
      "message": "Cleanup uses of sprintf so we can deprecate it.\n\nChange-Id: Ic66abfb547cd5551c47e03d604e65f83c84c597f\n"
    },
    {
      "commit": "d4b169173ad7805369204277580d3942cb08174a",
      "tree": "0acb1db94d43505bbb2db989a9d23757b6729976",
      "parents": [
        "ab9a9b09fdd9b8c9f666149f9840a09a97b91885"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Feb 23 17:49:53 2016 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Feb 25 15:29:17 2016 -0800"
      },
      "message": "AssetManager: Cache a pre-filtered list of configurations\n\nWhen we set the parameters for a ResTable, we can pre-filter which\nresources match and only look at that smaller list when getting entries.\nThis helps A LOT with types that have many configurations, like strings\nand all their various locales.\n\nBug:25499111\nChange-Id: Ie6894c44bc67e16a10dbe028c8f3e119e5c29ac7\n"
    },
    {
      "commit": "4de4596ac1175908657f29cdc2a56529f2ca4b25",
      "tree": "9086b62ab7eebaf7d72f253692f565fbb20c1635",
      "parents": [
        "7f036f8bce5c2f70b2cbc5e252220909bba69b5d"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Thu Feb 11 17:58:24 2016 -0800"
      },
      "committer": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Fri Feb 12 05:18:38 2016 +0000"
      },
      "message": "Fix locale matching algorithm for resources\n\nWe get ResTables two different ways: one is from AAPT, another from\nsettings-based requests from the Java side. In the settings-based\nrequests, localeScript will be autocomputed, but for AAPT-filled\ntables (especially if they come from older versions of AAPT), we need\nto compute the script.\n\nPreviously, locales that came from packages were incorrectly assumed\nto have \"undeterminable\" scripts, rather than \"undetermined\" scripts.\nThis led to us mistakenly falling back to the old logic of requiring\nthe locales\u0027 countries to match, rather than just looking at computed\nscripts.\n\nBug: 27157452\n\nChange-Id: Id7e346d3ecfb17273ffb63de5bcb4849a6eafbbd\n"
    },
    {
      "commit": "27953c349fa1c46698f57ae5f26339560c21adac",
      "tree": "e6be55731d70f74688c8ba84c91fd31d7901cc0b",
      "parents": [
        "c92035b1aa2b064d97377795553c11261f7e7cce"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Mon Feb 01 13:49:52 2016 -0800"
      },
      "committer": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Mon Feb 01 14:56:52 2016 -0800"
      },
      "message": "Make default resources a better match for en-US requests\n\nWhen locale fallback landed, resources which specified an \u0027English\u0027\nlocale started to be considered a better match for en-US, even though\ntraditionally, apps tend to ship US English resources under their\ndefault locale.\n\nThis fixes that, and makes en-US requests match default locales.\n\nBug: 26756573\nBug: 26789680\nBug: 26803868\nChange-Id: I460c276bfc6ddba0439dcdf87497a0aece0fa05d\n"
    },
    {
      "commit": "1a2d84acbd125db65b9baa781ee05fb50a0aca1a",
      "tree": "b7427c2eb1cc58fdf4701c5b29d8b322f104d40a",
      "parents": [
        "09a02f1c34cc8c8952805e0088723f999ea2aa6f"
      ],
      "author": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Jan 22 09:17:41 2016 -0800"
      },
      "committer": {
        "name": "John Reck",
        "email": "jreck@google.com",
        "time": "Fri Jan 22 09:17:41 2016 -0800"
      },
      "message": "ALOGE is not ALOGV\n\nChange-Id: I973cd7ce28bed38934aab0818e581a948a12cb42\n"
    },
    {
      "commit": "6cfa1cc4b0a60dcae6f97efd3efdd6f6033ab3be",
      "tree": "089e92e80acf1d3a987d812dbed2d248a100f080",
      "parents": [
        "17351b673522e52fab0e0ed371fa0f68e3a2879a",
        "3d3fe5026a6a3e951ef56ad16a100b8d5ae84574"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Fri Jan 22 00:31:40 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 22 00:31:40 2016 +0000"
      },
      "message": "Merge \"Add choreographer API to the NDK.\""
    },
    {
      "commit": "3d3fe5026a6a3e951ef56ad16a100b8d5ae84574",
      "tree": "80cf611c06bd2e4b1ba0965db1bd5b3ccc8bb1e8",
      "parents": [
        "e501c39e2cbfbe4cac473e97f8cae55ace3bb48c"
      ],
      "author": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Fri Dec 04 17:59:42 2015 +0000"
      },
      "committer": {
        "name": "Michael Wright",
        "email": "michaelwr@google.com",
        "time": "Thu Jan 21 16:30:33 2016 -0800"
      },
      "message": "Add choreographer API to the NDK.\n\nChange-Id: Icb8cffd3cd3bd06814466be72db3e26f6a62cbc6\n"
    },
    {
      "commit": "b927c559e1ef8530b08712507f320502627db298",
      "tree": "f0d2fd051cb4486239e6f6187e0da53e416fdaeb",
      "parents": [
        "ac3e599069e1b87ea190f008aef60a506c8561c7"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Fri Jan 15 11:23:42 2016 -0800"
      },
      "committer": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Thu Jan 21 13:47:22 2016 -0800"
      },
      "message": "Implement smarter locale resource selection\n\n* Add support for determining script from language and region.\n* Add support for determining special parents of locales.\n* Add support for smart comparison of locales with only a difference\n  in region, using the locale parentage tree.\n* Fix LocaleData.matchScore() to not fallback to old locale matching\n  behavior if we can\u0027t determine a script.\n* Allow four-character variant codes. (Previously, only five- to\n  eight-character variant codes were allowed.)\n\nBug: 7296673\nBug: 26589793\nChange-Id: Ibde0a48c0564ff383b41068095a5cbacfe7b94bc\n"
    },
    {
      "commit": "1c686f2ce6cbfa3fdb598f452aa31d38f3eb2320",
      "tree": "231683457601efdf2050ebc9ae863b99c3f056ed",
      "parents": [
        "c1f9e7c4875e791e108c79382508aab8d171f25f"
      ],
      "author": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Fri Dec 18 14:22:14 2015 -0800"
      },
      "committer": {
        "name": "Roozbeh Pournader",
        "email": "roozbeh@google.com",
        "time": "Mon Jan 04 13:53:54 2016 -0800"
      },
      "message": "Avoid matching system locales in locale negotiation\n\nAlso:\n1. Add AssetManager method for finding non-system locales: This is\nused in per-app locale negotiation. (Normally,\nAssetManager#getLocales() returns both system and non-system\nlocales.)\n\n2. Match pseudolocales correctly in locale negotiation.\n\nBug: 25800576\nBug: 26236938\nChange-Id: I116caf3a91c290deb4ad68b291c65b7035b18dd4\n"
    },
    {
      "commit": "1375e5f180c1e42c9f4d8c51531935b0449b8ed3",
      "tree": "2c65d58a6837fc3f8d3769124c5c0ae4f472ed10",
      "parents": [
        "429c5b93ff66e82fa3fd65475489fde133c66002"
      ],
      "author": {
        "name": "Tao Bai",
        "email": "michaelbai@google.com",
        "time": "Fri Nov 06 14:00:17 2015 -0800"
      },
      "committer": {
        "name": "Tao Bai",
        "email": "michaelbai@google.com",
        "time": "Fri Nov 06 14:33:49 2015 -0800"
      },
      "message": "Add test to cover loading shared-lib with appAsLib as true.\nThis patch made AppAsLib_test use its own resource\n\nBug 22487604\n\nChange-Id: Iac4cc949f1b25c326a287a49e0b031bf6831e9e9\n"
    },
    {
      "commit": "ab5bca1519cb9acb4fd140e99a250fc50868ff2f",
      "tree": "51c035d92482569d576ba9221af03d637f6153ee",
      "parents": [
        "2fd54a451c13ce65bd2639b0bd9397881371b5c5",
        "a6d7e3fb9c9233b9ae46b702d17433854c43d6a0"
      ],
      "author": {
        "name": "Tao Bai",
        "email": "michaelbai@google.com",
        "time": "Wed Sep 09 16:08:12 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 09 16:08:12 2015 +0000"
      },
      "message": "Merge \"Load app resource as shared library.\""
    },
    {
      "commit": "a6d7e3fb9c9233b9ae46b702d17433854c43d6a0",
      "tree": "3b1a5c2f45dd4e56ac320d28edb61525702fb599",
      "parents": [
        "81d74743107b372424fb8f7439357bdd608f8caf"
      ],
      "author": {
        "name": "Tao Bai",
        "email": "michaelbai@google.com",
        "time": "Tue Sep 01 18:49:54 2015 -0700"
      },
      "committer": {
        "name": "Tao Bai",
        "email": "michaelbai@google.com",
        "time": "Tue Sep 08 18:48:42 2015 -0700"
      },
      "message": "Load app resource as shared library.\n\n- Added aapt command line flag --app-as-shared-lib to build app resources\n  that could be loaded as shared lib at runtime.\n- Added new method AssetManager.addAssetPathAsSharedLibrary() to load an\n  app resource as shared library.\n\nBug 22487604\n\nChange-Id: Ib9b33c35f9c2b7129f3ba205de03d4564623ea39\n"
    },
    {
      "commit": "a3e05c4ccb53daf804959b42914ed05a8615f6f8",
      "tree": "25143e7c9104b3753fd7633321c7bfd8a80e12b6",
      "parents": [
        "ae5782c7b4241c1655fab78e9a69d231eb7d93f7",
        "83533a235c64a3b3cbecf152b678585f1e6b3577"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Sep 01 17:05:59 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 01 17:05:59 2015 +0000"
      },
      "message": "am 83533a23: am 13786e28: am 60dd5d59: Merge \"Remove USE_MINGW, whitelist windows modules\"\n\n* commit \u002783533a235c64a3b3cbecf152b678585f1e6b3577\u0027:\n  Remove USE_MINGW, whitelist windows modules\n"
    },
    {
      "commit": "13786e281e4d67b9e2ff549fee34ddb3e82e0325",
      "tree": "378b96408c8cdfb091612314916f2e1dba084ebd",
      "parents": [
        "a6d167256d37f2b182658bb2d8ac6ed3f6258cb8",
        "60dd5d5966ebe993f5a81c46d9dea62c207abfd3"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Sep 01 16:37:10 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 01 16:37:10 2015 +0000"
      },
      "message": "am 60dd5d59: Merge \"Remove USE_MINGW, whitelist windows modules\"\n\n* commit \u002760dd5d5966ebe993f5a81c46d9dea62c207abfd3\u0027:\n  Remove USE_MINGW, whitelist windows modules\n"
    },
    {
      "commit": "4aa679ff969c3ec2159088cd3740df1034c9ee24",
      "tree": "9d8450264799917ab875d057b97e7e5b38de68b6",
      "parents": [
        "ea288fd3d4272cc6cd5da94b942fc4cfdc76e030"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Aug 19 11:13:56 2015 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Fri Aug 28 15:28:26 2015 -0700"
      },
      "message": "Remove USE_MINGW, whitelist windows modules\n\nBug: 23566667\nChange-Id: Ie6b8c51e2b6d6273f99f4e361c440136d7c6915c\n"
    },
    {
      "commit": "344e838d22b6dcd0b887e56cb6011eb11bc93866",
      "tree": "677d0789c1e31a116f9ff1bfa0e28269c988980d",
      "parents": [
        "ccc82c05157a66b1005edb03731339dbce7377ba",
        "598319d01743427aa67faf4f54ae6d837c8c6d2e"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Aug 14 21:49:13 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 14 21:49:13 2015 +0000"
      },
      "message": "am 598319d0: am 16e5aba9: am 4a2a890b: Merge \"Fix mismatched new[]/delete.\"\n\n* commit \u0027598319d01743427aa67faf4f54ae6d837c8c6d2e\u0027:\n  Fix mismatched new[]/delete.\n"
    },
    {
      "commit": "598319d01743427aa67faf4f54ae6d837c8c6d2e",
      "tree": "21dd4fc33dd04d6ca6813cc4214086d61af41de9",
      "parents": [
        "c852a3e39c1bbb112e2705edc6714b6b687cb55d",
        "16e5aba9c8157b3ffdcdceda378896a43f074748"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Aug 14 21:43:19 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 14 21:43:19 2015 +0000"
      },
      "message": "am 16e5aba9: am 4a2a890b: Merge \"Fix mismatched new[]/delete.\"\n\n* commit \u002716e5aba9c8157b3ffdcdceda378896a43f074748\u0027:\n  Fix mismatched new[]/delete.\n"
    },
    {
      "commit": "f13f1efab233b5b90c185b973665e5b675a6de53",
      "tree": "c08d809877c335b71122fd5b091febb24bc7bd81",
      "parents": [
        "9a9fd61e0b4a93ef36b13e4ff00621dd594b96cb",
        "16e5aba9c8157b3ffdcdceda378896a43f074748"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Aug 14 21:43:16 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 14 21:43:16 2015 +0000"
      },
      "message": "am 16e5aba9: am 4a2a890b: Merge \"Fix mismatched new[]/delete.\"\n\n* commit \u002716e5aba9c8157b3ffdcdceda378896a43f074748\u0027:\n  Fix mismatched new[]/delete.\n"
    },
    {
      "commit": "8dc8313c3e5781dfd65915da453ebad1561a7cb9",
      "tree": "612cf2bc62192844b04148d33543dc61ad8b60a9",
      "parents": [
        "10e0f07975e6e446763b733bb438df5715c3693d"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Aug 14 14:12:29 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Fri Aug 14 14:12:29 2015 -0700"
      },
      "message": "Fix mismatched new[]/delete.\n\nThe new clang will emit a warning for this.\n\nChange-Id: Ie0edc46461eb5edb2a7ad33a3a7f6cef2d825c36\n"
    },
    {
      "commit": "4c807349bdd46ff818edfed63e9193a1a5b67a9f",
      "tree": "b5ed3585d03489a7ebd27dcfbb1c0efb9b9fa2d4",
      "parents": [
        "8cf6d865cfb3c05034f947b81de8ca09a92037a0",
        "344d347af22705aa2fa80602d27a5682a72b5f69"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 12 23:56:18 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 12 23:56:18 2015 +0000"
      },
      "message": "am 344d347a: am 39669d7f: am 6fdc6333: Merge \"Lose HAVE_ANDROID_OS from frameworks/base.\"\n\n* commit \u0027344d347af22705aa2fa80602d27a5682a72b5f69\u0027:\n  Lose HAVE_ANDROID_OS from frameworks/base.\n"
    },
    {
      "commit": "344d347af22705aa2fa80602d27a5682a72b5f69",
      "tree": "fbc2631fbd76ca57dd26558c5ff9b8a4c4b22218",
      "parents": [
        "d202d15d9e4845537c4409c9880eb269b2b59129",
        "39669d7f6b8fedef3468ab3d417c93a21df528af"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 12 23:28:30 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 12 23:28:30 2015 +0000"
      },
      "message": "am 39669d7f: am 6fdc6333: Merge \"Lose HAVE_ANDROID_OS from frameworks/base.\"\n\n* commit \u002739669d7f6b8fedef3468ab3d417c93a21df528af\u0027:\n  Lose HAVE_ANDROID_OS from frameworks/base.\n"
    },
    {
      "commit": "17b4be07fed91da2f770be87f66b1e8918dff52f",
      "tree": "da77143c1aa50379ee2dfe5ad9d6debab6c05bf7",
      "parents": [
        "9dc2d5cd5bcd7519537828794a77a45d0a14ea03",
        "39669d7f6b8fedef3468ab3d417c93a21df528af"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 12 23:21:56 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 12 23:21:56 2015 +0000"
      },
      "message": "am 39669d7f: am 6fdc6333: Merge \"Lose HAVE_ANDROID_OS from frameworks/base.\"\n\n* commit \u002739669d7f6b8fedef3468ab3d417c93a21df528af\u0027:\n  Lose HAVE_ANDROID_OS from frameworks/base.\n"
    },
    {
      "commit": "ba3fe56edc1da4dad0d831a1892e7b1c3c20c437",
      "tree": "baa26269c62707c7391b442a583968ee11bbc4c0",
      "parents": [
        "daf8d9056815b7435bdf4d07da3f938f11052691"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 12 14:49:53 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Aug 12 14:49:53 2015 -0700"
      },
      "message": "Lose HAVE_ANDROID_OS from frameworks/base.\n\nChange-Id: I713881fdbaec7cbbb5e7f2f4be6f9b8be3d2ca4e\n"
    },
    {
      "commit": "2349332f9f69189d7889692b9aafd6f80070e352",
      "tree": "393ede4dbdb82f272405d9d641db8e02526b66a2",
      "parents": [
        "0f9f0189822c6bee498b23c93512b6be0e9d1358"
      ],
      "author": {
        "name": "Filip Gruszczynski",
        "email": "gruszczy@google.com",
        "time": "Wed Jul 29 17:02:59 2015 -0700"
      },
      "committer": {
        "name": "Filip Gruszczynski",
        "email": "gruszczy@google.com",
        "time": "Mon Aug 10 13:47:31 2015 -0700"
      },
      "message": "Only relaunch activity on significant size configuration changes.\n\nCurrently if the configuration width/height/smallest width changes, we\nrelaunch the activity or invoke onConfigurationChanged callback. When it\ncomes to size based configuration changes it might not be necessary: if\nthe size change doesn\u0027t pass one of the threshold defined by the\nresources, it means there is no need to relaunch the activity.\n\nIn this CL the ActivityManager will receive the thresholds from the\napplication and use them to decide, whether to relaunch the activity.\nThe application reads the thresholds from the resources, specifically\nfrom resource qualifiers used by the app.\n\nChange-Id: Ie3cf0a172dc1ba0b865cf30c2962e7cfd9ad8436\n"
    },
    {
      "commit": "3a4d02220f14a1fe44e24c7c270d13bfaca3dc9b",
      "tree": "4f387bed6a23432dddf214bf089a4b847ee1eacc",
      "parents": [
        "edd15f39f57306ac1ca54fd50640f45eccf7d3e0",
        "61234deafe78ded05569edfab24536cdb4bd7720"
      ],
      "author": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Thu Aug 06 01:40:24 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 06 01:40:24 2015 +0000"
      },
      "message": "am 61234dea: am bd4c482b: Merge \"Clean up AssetManager::scanAndMergeZipLocked\"\n\n* commit \u002761234deafe78ded05569edfab24536cdb4bd7720\u0027:\n  Clean up AssetManager::scanAndMergeZipLocked\n"
    },
    {
      "commit": "e15a5871bdba6aef1febbf14cdd58864a9e905f9",
      "tree": "9fbc05bcd89d25938512b856fba85e7dc0284bf4",
      "parents": [
        "96e2975cbb22ecca4c00bf237ef4027f951a7e73",
        "61234deafe78ded05569edfab24536cdb4bd7720"
      ],
      "author": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Thu Aug 06 01:39:44 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 06 01:39:44 2015 +0000"
      },
      "message": "am 61234dea: am bd4c482b: Merge \"Clean up AssetManager::scanAndMergeZipLocked\"\n\n* commit \u002761234deafe78ded05569edfab24536cdb4bd7720\u0027:\n  Clean up AssetManager::scanAndMergeZipLocked\n"
    },
    {
      "commit": "c1efd41f3f20d0594834adde4649c762773f931f",
      "tree": "8d9a29e7da303bf0c34666a510672e4c0464c4fd",
      "parents": [
        "63cd28afc398a8f26dc3eed0404ff8f26b04a5c6"
      ],
      "author": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Wed Aug 05 13:14:53 2015 -0700"
      },
      "committer": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Wed Aug 05 14:41:52 2015 -0700"
      },
      "message": "Fix build breakage caused by I5ebe0438019958d883a7fda6bd92ea4484211d23 (AOSP)\n\nChange-Id: Icea0ac00c56b5c8aa21134fc49b518cda4759e36\n"
    },
    {
      "commit": "fa451e377612c09f462cbccf31cc92b02cb24b91",
      "tree": "573704eb6df9ad286ea9cd074daedeecb01feb6e",
      "parents": [
        "f9bf5cd4a28380033fb26b5e047e51c5c81d1d95",
        "5387f60ba26ae89e31e776202fbf13287dc620a8"
      ],
      "author": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Wed Aug 05 20:44:58 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 05 20:44:58 2015 +0000"
      },
      "message": "am 5387f60b: Merge \"Fix build breakage caused by r.android.com/162907\" into mnc-dr-dev-plus-aosp\n\n* commit \u00275387f60ba26ae89e31e776202fbf13287dc620a8\u0027:\n  Fix build breakage caused by r.android.com/162907\n"
    },
    {
      "commit": "61208839714b29b834fec120079730d529890a37",
      "tree": "7edc36442cccac8b2b6315c809e365dd7e9bc99b",
      "parents": [
        "3e0c82d286680723d5da48346a14cb03f38fa161",
        "3251f2aab75c8c905cc59b428d99812b5575ebdb"
      ],
      "author": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Wed Aug 05 20:36:43 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 05 20:36:43 2015 +0000"
      },
      "message": "am 3251f2aa: am 3383b141: am a024acb8: Merge \"Let findSupportedAbi and hasRenderscriptBitcode scan only relevant files\"\n\n* commit \u00273251f2aab75c8c905cc59b428d99812b5575ebdb\u0027:\n  Let findSupportedAbi and hasRenderscriptBitcode scan only relevant files\n"
    },
    {
      "commit": "ead2088efe305320cf860c4eb60b2b0381930635",
      "tree": "24f38e3725308b78a9cecf943f25dc2ea4371ee0",
      "parents": [
        "3251f2aab75c8c905cc59b428d99812b5575ebdb"
      ],
      "author": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Wed Aug 05 13:14:53 2015 -0700"
      },
      "committer": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Wed Aug 05 13:14:53 2015 -0700"
      },
      "message": "Fix build breakage caused by r.android.com/162907\n\nChange-Id: Ifeb7b57ce79f3d8c0edadf03d14853e72840d49e\n"
    },
    {
      "commit": "3251f2aab75c8c905cc59b428d99812b5575ebdb",
      "tree": "548cdaec4164cdae48b5d20dd1056ff92716fcd4",
      "parents": [
        "7581a2090e13b8bc8beef39233cf498e4ae0ba63",
        "3383b141c3ac4426279e649ebcee535890203c3f"
      ],
      "author": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Wed Aug 05 19:09:41 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 05 19:09:41 2015 +0000"
      },
      "message": "am 3383b141: am a024acb8: Merge \"Let findSupportedAbi and hasRenderscriptBitcode scan only relevant files\"\n\n* commit \u00273383b141c3ac4426279e649ebcee535890203c3f\u0027:\n  Let findSupportedAbi and hasRenderscriptBitcode scan only relevant files\n"
    },
    {
      "commit": "eb24da62ac2556e828ced32a554f69f16cbb7c38",
      "tree": "579d6ab1e082e6337c75da95bc343a9821a85614",
      "parents": [
        "3c9ec351f179eef81bd625e0e3112e73bedb35ae",
        "3383b141c3ac4426279e649ebcee535890203c3f"
      ],
      "author": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Wed Aug 05 19:05:17 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 05 19:05:17 2015 +0000"
      },
      "message": "am 3383b141: am a024acb8: Merge \"Let findSupportedAbi and hasRenderscriptBitcode scan only relevant files\"\n\n* commit \u00273383b141c3ac4426279e649ebcee535890203c3f\u0027:\n  Let findSupportedAbi and hasRenderscriptBitcode scan only relevant files\n"
    },
    {
      "commit": "05f648e1d3cbbe31173d9134cda6056c79d5a4a4",
      "tree": "f5515069c0734f708dad4dc6a637f0c4db81e3a0",
      "parents": [
        "957c23775f46c26142bc6d4f9a592ac4586a9ef8"
      ],
      "author": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Mon Aug 03 16:21:10 2015 -0700"
      },
      "committer": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Mon Aug 03 17:24:42 2015 -0700"
      },
      "message": "Clean up AssetManager::scanAndMergeZipLocked\n\nNow that ZipFileRO::startIteration supports prefix/suffix matching,\nwe can pass dirName to the function for simpler code and slightly\nbetter performance.\n\n(cherry-pick of c796ad0a8be6df4a3b354690dfe5ce1df8136c09)\n\nChange-Id: I0e2ac58de28020c2af8d8e569a97592b09596185\n"
    },
    {
      "commit": "957c23775f46c26142bc6d4f9a592ac4586a9ef8",
      "tree": "b0e5e6aa058940d5acd4afdf279f1db30bfd74b1",
      "parents": [
        "608ad1409dc3cd86a66208ddaa31e3a4c54adfac"
      ],
      "author": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Mon Aug 03 16:17:16 2015 -0700"
      },
      "committer": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Mon Aug 03 17:24:32 2015 -0700"
      },
      "message": "Let findSupportedAbi and hasRenderscriptBitcode scan only relevant files\n\nfor better performance. Without the optimization, these two functions\nmay check more than 100k file names in the pre-installed APK files,\nwhich can take a few seconds to finish even on a recent device.\n\n(cherry-pick of 34fe3df8519523dbb4bc27010fa57f259d5e868d)\n\nBug: 21957428\nChange-Id: I5ebe0438019958d883a7fda6bd92ea4484211d23\n"
    },
    {
      "commit": "7bfd7048f2a0ed71c6b27699eaad54686efc947a",
      "tree": "731a6f436c6956b2679eec5fdf91673758dac867",
      "parents": [
        "54422956bf1cd17627766c23d8a1495caac247d1",
        "c796ad0a8be6df4a3b354690dfe5ce1df8136c09"
      ],
      "author": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Mon Aug 03 17:41:19 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 03 17:41:19 2015 +0000"
      },
      "message": "Merge \"Clean up AssetManager::scanAndMergeZipLocked\""
    },
    {
      "commit": "1db1b5821f6819a602f2dda5950d12b6f6183c36",
      "tree": "04cb551ba9ca21dd4f343b87964fbf414b697edb",
      "parents": [
        "5745eead22ecd70fd9d418f1a6ac23d837dbdbe8",
        "204b4157b3fdbeea8859c4ad0e29be18d74e6f5f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 30 15:47:11 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 30 15:47:11 2015 +0000"
      },
      "message": "am 204b4157: am f8a6a2f6: Merge \"Use _WIN32 rather than HAVE_WINSOCK.\"\n\n* commit \u0027204b4157b3fdbeea8859c4ad0e29be18d74e6f5f\u0027:\n  Use _WIN32 rather than HAVE_WINSOCK.\n"
    },
    {
      "commit": "d065fd415cf02c25dd80a01a12fbafb0b20cd08b",
      "tree": "41a984fd0aa9d7a857f1a1914930d6a057ede3d6",
      "parents": [
        "0c152b9e8424bdcbf558391ad40d2ca4fea9f62a",
        "204b4157b3fdbeea8859c4ad0e29be18d74e6f5f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 30 15:46:55 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 30 15:46:55 2015 +0000"
      },
      "message": "am 204b4157: am f8a6a2f6: Merge \"Use _WIN32 rather than HAVE_WINSOCK.\"\n\n* commit \u0027204b4157b3fdbeea8859c4ad0e29be18d74e6f5f\u0027:\n  Use _WIN32 rather than HAVE_WINSOCK.\n"
    },
    {
      "commit": "59cbe8d10750a0577c3ea999b2dd90bf0a05ffe6",
      "tree": "0432772e3b9e8f70efd25c899c0286d713fe65ad",
      "parents": [
        "84a04d52e7118f67e9a099fdbf55111f1c7a9010"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 29 17:49:27 2015 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 29 17:49:27 2015 -0700"
      },
      "message": "Use _WIN32 rather than HAVE_WINSOCK.\n\nChange-Id: I0821d2af8473c359e8b73aec455000cb7c42f690\n"
    },
    {
      "commit": "3ab63f637f4ff4a6783bdd197734d67d605c453d",
      "tree": "19f59e92118a3bac15f342918bec7f26aaff6dee",
      "parents": [
        "6a5791d163e9f8dab1efb3e2a713ee521c347b32",
        "68d982dab9ebba2accb7aa37f55cf68548d24818"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jul 28 00:57:35 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 28 00:57:35 2015 +0000"
      },
      "message": "am 68d982da: am f02a02c2: am e1e94c7d: am fd44b56d: Merge \"AAPT: Fix printing of resource configurations\" into mnc-dev\n\n* commit \u002768d982dab9ebba2accb7aa37f55cf68548d24818\u0027:\n  AAPT: Fix printing of resource configurations\n"
    },
    {
      "commit": "33d4bd4a9b42972fee3fc84a8babcef1030b72c1",
      "tree": "eb8f910c8320dffbf8060d638e7d3e5611776136",
      "parents": [
        "089f65ed1e635b96f341562c78e86e43f20211a5",
        "fd44b56d599bc6c6e7397dcdfaa6d613805a88cb"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jul 28 00:35:46 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 28 00:35:46 2015 +0000"
      },
      "message": "am fd44b56d: Merge \"AAPT: Fix printing of resource configurations\" into mnc-dev\n\n* commit \u0027fd44b56d599bc6c6e7397dcdfaa6d613805a88cb\u0027:\n  AAPT: Fix printing of resource configurations\n"
    },
    {
      "commit": "5b0f1be0a23011416697efaa7e9c050e466c44f5",
      "tree": "118c1a6aaa6b061299a48f6f62dc245be69b1463",
      "parents": [
        "71bfb27013f983bc4a54f1924af61c07732f994e"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jul 27 16:53:14 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Jul 27 17:04:43 2015 -0700"
      },
      "message": "AAPT: Fix printing of resource configurations\n\nPrint out proper, copied configuration. We add fields to ResTable_config\nand if we don\u0027t copy and fill in defaults when reading old configurations,\nwe end up with garbage values. This can potentially cause a crash as well.\n\nBug:22773426\nChange-Id: I64f5ebe73ee72453bcdad3a19e48f8e7ad58e9c2\n"
    },
    {
      "commit": "c796ad0a8be6df4a3b354690dfe5ce1df8136c09",
      "tree": "19630f583f28ed951af9a8532ed0352807994672",
      "parents": [
        "1b11146bd9c62e163d1816136985aa6f68b7f061"
      ],
      "author": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Thu Jun 25 17:47:35 2015 -0700"
      },
      "committer": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Wed Jul 22 15:29:43 2015 -0700"
      },
      "message": "Clean up AssetManager::scanAndMergeZipLocked\n\nNow that ZipFileRO::startIteration supports prefix/suffix matching,\nwe can pass dirName to the function for simpler code and slightly\nbetter performance.\n\nChange-Id: Ia93c3ab3fa688ce013dd9febbf0f4bd3ee1f3e5e\n"
    },
    {
      "commit": "53a19bb967f45ddfb80699865dc30094024343f6",
      "tree": "2a62eaf57ecc5c06010e372c886425df361a2d2c",
      "parents": [
        "0515ad6ac0806d88ac371730c064a0ae5bc5db42",
        "d3d6e9a37e86e386988b84120d53cf52192dbc21"
      ],
      "author": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Mon Jun 29 13:09:51 2015 -0700"
      },
      "committer": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Mon Jun 29 13:09:51 2015 -0700"
      },
      "message": "resolved conflicts for merge of d3d6e9a3 to mnc-dev-plus-aosp\n\nChange-Id: Ie32db11e6c1062df32b16a5cd6fcd219e0bdc017\n"
    },
    {
      "commit": "f162faaa1266ad38c293e1e54911e389f39c2654",
      "tree": "c09a8bf5b8fe2165eec4c5df87da1582289cb6b1",
      "parents": [
        "fdb70dc4346f801673aa700f3fca2b8cc77b809c"
      ],
      "author": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Thu Jun 25 14:58:16 2015 -0700"
      },
      "committer": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Thu Jun 25 14:58:16 2015 -0700"
      },
      "message": "Rename ZipEntryName to ZipString\n\nAlso add a 4th parameter to StartIteration(). This is for\nhttps://android-review.googlesource.com/#/c/156771/.\n\nBug: 21957428\nChange-Id: Ifbf9aec2f04b214b57e99c306282d7c0d39675a9\n"
    },
    {
      "commit": "34fe3df8519523dbb4bc27010fa57f259d5e868d",
      "tree": "08282d0b6cc64337f57e5d9964bf14d42580fddb",
      "parents": [
        "84a378f256bf7925ceb5d2c039a033d3e59b75df"
      ],
      "author": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Fri Jun 19 17:18:07 2015 -0700"
      },
      "committer": {
        "name": "Yusuke Sato",
        "email": "yusukes@google.com",
        "time": "Mon Jun 22 16:11:32 2015 -0700"
      },
      "message": "Let findSupportedAbi and hasRenderscriptBitcode scan only relevant files\n\nfor better performance. Without the optimization, these two functions\nmay check more than 100k file names in the pre-installed APK files,\nwhich can take a few seconds to finish even on a recent device.\n\nBug: 21957428\nChange-Id: I315fd3c6d5aa1076b993752525de449a9933de12\n"
    },
    {
      "commit": "407753c456c1eb2c8556ae7891b6bef43b044e76",
      "tree": "8dcc64a1dd532071a5a626821bc4d54abd6a3b4d",
      "parents": [
        "dc22cfed5d3a65dcd3979113dbce468ad8ec2868"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Jun 16 12:02:57 2015 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Jun 17 13:13:16 2015 +0000"
      },
      "message": "ZipFileRO: Use precise widths for zip file types.\n\ngetEntryInfo crashes on 64-bit devices because \"long\" types\nwere being passed int pointers (that pointed to a stack frame)\nthat were reinterpret_cast\u0027ed to long* (sigh.). To fix this issue\nonce and for all, use types with explicitly defined widths.\n\nThis change also removes some dead invariant checking from\nAsset.cpp instead of cleaning it up.\n\nNote that we\u0027ve introduced a wart in NativeLibraryHelper, where\nwe need to deal with zlib\u0027s uLong type, which is \"at least 32 bits\nwide\".\n\nbug: 21622286\n\n(cherry picked from commit 4600dd053dbdbd4b95f3b11057a1cc55b99f9c77)\n\nChange-Id: I7886cb37a229cc27c625699c80e6a6a6117d2203\n"
    },
    {
      "commit": "4600dd053dbdbd4b95f3b11057a1cc55b99f9c77",
      "tree": "c4bb116de6b55b054a73083165c9512fbf21c164",
      "parents": [
        "5e063b1da52cca1b93b19bdf7be694aabf95d336"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Jun 16 12:02:57 2015 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Jun 17 08:40:25 2015 +0000"
      },
      "message": "ZipFileRO: Use precise widths for zip file types.\n\ngetEntryInfo crashes on 64-bit devices because \"long\" types\nwere being passed int pointers (that pointed to a stack frame)\nthat were reinterpret_cast\u0027ed to long* (sigh.). To fix this issue\nonce and for all, use types with explicitly defined widths.\n\nThis change also removes some dead invariant checking from\nAsset.cpp instead of cleaning it up.\n\nNote that we\u0027ve introduced a wart in NativeLibraryHelper, where\nwe need to deal with zlib\u0027s uLong type, which is \"at least 32 bits\nwide\".\n\nbug: 21622286\n\nChange-Id: Iae675a9601db7aae03a8b80b40321d2cc1d97f50\n"
    },
    {
      "commit": "2738c96d998dedfae5b4670d588d0cd299c4ca0f",
      "tree": "76b8571676d42a9c0b3bfa00f1937eebf2c05698",
      "parents": [
        "038959e851603500eb39b52fef33cbe75dbd73e3"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu May 14 14:25:36 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri May 15 15:10:58 2015 -0700"
      },
      "message": "Add -round and -notround qualifier to android runtime/aapt\n\nThe round qualifier denotes a device with a screen shape that\nis round. The qualifier shows up after the \u0027long/notlong\u0027 qualifier\nand before the orientation \u0027port/land/square\u0027 qualifiers.\n\nChange-Id: I3044258b2703a9165694b79725bade770fa6cea1\n"
    },
    {
      "commit": "5a7587fa90732c013bb9266f1bdae0a557455c15",
      "tree": "d2824499cea406e62df42f717f3b2c735ea32c32",
      "parents": [
        "227d42db5bd1bd16b6101f799052c10f4f493647"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon May 11 15:45:36 2015 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue May 12 10:37:18 2015 +0000"
      },
      "message": "Fix file descriptor leak when opening invalid archives.\n\nI\u0027ve inspected all other callers of OpenArchive and this seems\nto be the only broken one. The easiest way to reproduce this is\nby using getPackageArchiveInfo or by adding an asset path that\nisn\u0027t a valid APK.\n\nbug: https://code.google.com/p/android/issues/detail?id\u003d171099\nChange-Id: I41cd85d20f26ad47968e2a6f1384cc03330b558b\n"
    },
    {
      "commit": "e54d245b993e1347cb32c23a6bdc907a45fab324",
      "tree": "be087de6d12733ca9800724ac77103a0b2173964",
      "parents": [
        "424681e43e454bfcbceb863ddccb875ea57ec26f"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed May 06 10:41:43 2015 -0700"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Wed May 06 10:41:43 2015 -0700"
      },
      "message": "Improve keying for theme caches, rebase system theme on config change\n\nThemes now use an array of applied styles rather than a String to store\ntheir history. They are keyed based on a hash code computed from the\nhistory of applied styles. The themed drawable cache has been abstracted\nout into its own class.\n\nAlso updates system context to use DayNight as the default and ensures\nthat GlobalActions uses the correct context, which exercises the change.\n\nCTS tests have been added in another CL.\n\nBug: 20421157\nChange-Id: I9eb4b7dffd198ad24d02f656eaf0839570b59caa\n"
    },
    {
      "commit": "261208e002775fe9a9f4e79e9f70b41852cfbe60",
      "tree": "8892fb65af63b32037a23cebd66081e2a944cbce",
      "parents": [
        "28a516280a59a81aeecbf4a68057019d59feb872",
        "c1d527926e1c82828e42bdc0c7abf50f6decc0a7"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue May 05 16:50:27 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 05 16:50:29 2015 +0000"
      },
      "message": "Merge \"Add API for obtaining changing configurations bitmask from Theme\" into mnc-dev"
    },
    {
      "commit": "c1d527926e1c82828e42bdc0c7abf50f6decc0a7",
      "tree": "48cfc47946a00d3c2126aa62fbf8e47e89e3dbf9",
      "parents": [
        "5551aca2b8ec9fe7ab5ffda8dad82ee104556962"
      ],
      "author": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue May 05 09:49:03 2015 -0700"
      },
      "committer": {
        "name": "Alan Viverette",
        "email": "alanv@google.com",
        "time": "Tue May 05 09:49:03 2015 -0700"
      },
      "message": "Add API for obtaining changing configurations bitmask from Theme\n\nRequired to know when to reload the system context\u0027s theme in response\nto configuration changes, and thus needed to support the DayNight theme.\n\nBug: 20267825\nChange-Id: I7df5e28b7a6d8b611ea030032544cf4800788514\n"
    },
    {
      "commit": "bb4ed9aa3aec4b787c8cd5e4f04b7f95302b76f9",
      "tree": "b4ed624379be0c71be7a9d9b93845584cf3fbcc6",
      "parents": [
        "2d954c7b46b40033161f61bebfad213f97821a8d",
        "815d9bb178a0488ed1579cd230d447630ad0891b"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Apr 29 14:38:15 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 29 14:38:15 2015 +0000"
      },
      "message": "am 815d9bb1: Merge \"Add a static dependency on libbase.\"\n\n* commit \u0027815d9bb178a0488ed1579cd230d447630ad0891b\u0027:\n  Add a static dependency on libbase.\n"
    },
    {
      "commit": "9c8ba9666d2fad27baae11e56d63485a22812d17",
      "tree": "c8f748f6d9a2ba3cb440266a02abb1f24617aa47",
      "parents": [
        "adbbba9f1dc364e4d3911562fdb8f2e666922e2f"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Apr 28 09:23:26 2015 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Wed Apr 29 14:07:41 2015 +0000"
      },
      "message": "Add a static dependency on libbase.\n\nUsed by libziparchive.\n\nChange-Id: I120494b620c72b36a725b01f1f274f5dc862a9a3\n"
    },
    {
      "commit": "2eb10c0075e5e23dc6868d83569a492724af3115",
      "tree": "c46f5ed5125de2e10d96efb92f2ff1fa6c85cda4",
      "parents": [
        "0f94fc6f1df4ef03e639190a138d650bc6cf8adf",
        "05ad674aa888e3f9217de0e5c3176161dd8e31aa"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Apr 25 22:05:25 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Apr 25 22:05:25 2015 +0000"
      },
      "message": "am 05ad674a: am 00e165ae: am e8101c04: Merge \"fix compiler error under FORTIFY_SOURCE\u003d2\"\n\n* commit \u002705ad674aa888e3f9217de0e5c3176161dd8e31aa\u0027:\n  fix compiler error under FORTIFY_SOURCE\u003d2\n"
    },
    {
      "commit": "9709a1f04c1b6d44d75d504c3e200be256e52e50",
      "tree": "c9492f6241a52d854f24cd6c3681750538934016",
      "parents": [
        "e60077e62a441dbcc132b2abb35d998ab48d261c"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Apr 24 20:25:50 2015 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Apr 24 20:27:06 2015 -0700"
      },
      "message": "fix compiler error under FORTIFY_SOURCE\u003d2\n\nframeworks/base/libs/androidfw/ObbFile.cpp:340:5: error: ignoring return value of function declared with warn_unused_result attribute [-Werror,-Wunused-result]\n    ftruncate(fd, mFooterStart);\n    ^~~~~~~~~ ~~~~~~~~~~~~~~~~\n1 error generated.\namake: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libandroidfw_intermediates/ObbFile.o] Error 1\n\nChange-Id: I7080d64e7a830a10b41c1ebf33c60d32b7c8356e\n"
    },
    {
      "commit": "39606e9f78a1b2aa4e82b47e978471cd1158d1df",
      "tree": "3e21c499055b91d18693283d095113c82e2a0c42",
      "parents": [
        "4c08b1bab279fec1a66f1af701ee5c2054eba9ac",
        "7b09e7a9f3ef804e9cd159023b64eac1ef8b7931"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Apr 15 00:07:01 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 15 00:07:01 2015 +0000"
      },
      "message": "am 7b09e7a9: am 44d7989a: am 571c5a26: Merge \"Fix UB in ResourceTable::stringToInt.\"\n\n* commit \u00277b09e7a9f3ef804e9cd159023b64eac1ef8b7931\u0027:\n  Fix UB in ResourceTable::stringToInt.\n"
    },
    {
      "commit": "1b4f316651096f0ef9301b4ffde4816a08a54ab5",
      "tree": "f141604343f4114337483ed0fb30fe36f4750310",
      "parents": [
        "47c1cf4b35616059409a0674382c2318494e877b"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Tue Apr 07 18:43:15 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Wed Apr 08 14:12:21 2015 -0700"
      },
      "message": "Fix UB in ResourceTable::stringToInt.\n\nWas here because UBsan found integer overflow in the parsing for hex\nnumbers, since hex numbers here are actually unsigned but assigned to\na signed integer.\n\nAlso fixes a number of missing error conditions.\n\nChange-Id: Iaea576daedfc6c75521cde02de3fe9dd0198a3b7\n"
    },
    {
      "commit": "11ae768cf1b8348e761ad9c09e98788da1e591b1",
      "tree": "fa4a4e9fffc83e61af98476d41df4252e3cd1323",
      "parents": [
        "e7f931c4505a6bd62e01bef5193dd724571a672b"
      ],
      "author": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Tue Mar 24 18:48:10 2015 -0700"
      },
      "committer": {
        "name": "Christopher Tate",
        "email": "ctate@google.com",
        "time": "Thu Mar 26 18:57:36 2015 -0700"
      },
      "message": "Add payload-size preflight stage to full transport backup\n\nWe now peform a total-size preflight pass before committing data to the\nwire.  This is to eliminate the large superfluous network traffic that\nwould otherwise happen if the transport enforces internal quotas: we\nnow instead ask the transport up front whether it\u0027s prepared to accept\na given payload size for the package.\n\nFrom the app\u0027s perspective this preflight operation is indistinguishable\nfrom a full-data backup pass.  If the app has provided its own full-data\nhandling in a subclassed backup agent, their usual file-providing code\npath will be executed.  However, the files named for backup during this\npass are not opened and read; just measured for their total size.  As\nfar as component lifecycles, this measurement pass is simply another\ncall to the agent, immediately after it is bound, with identical\ntimeout semantics to the existing full-data backup invocation.\n\nOnce the app\u0027s file set has been measured the preflight operation\ninvokes a new method on BackupTransport, called checkFullBackupSize().\nThis method is called after performFullBackup() (which applies any\noverall whitelist/blacklist policy) but before any data is delivered\nto the transport via sendBackupData().  The return code from\ncheckFullBackupSize() is similar to the other transport methods:\nTRANSPORT_OK to permit the full backup to proceed; or\nTRANSPORT_REJECT_PACKAGE to indicate that the requested payload is\nunacceptable; or TRANSPORT_ERROR to report a more serious overall\ntransport-level problem that prevents a full-data backup operation\nfrom occurring right now.\n\nThe estimated payload currently does not include the size of the\nsource-package metadata (technically, the manifest entry in its\narchive payload) or the size of any widget metadata associated with\nthe package\u0027s install.  In practice this means the preflighted size\nunderestimates by 3 to 5 KB.  In addition, the preflight API currently\ncannot distinguish between payload sizes larger than 2 gigabytes;\nany payload estimate larger than that is passed as Integer.MAX_VALUE\nto the checkFullBackupSize() query.\n\nBug 19846750\n\nChange-Id: I44498201e2d4b07482dcb3ca8fa6935dddc467ca\n"
    },
    {
      "commit": "8a9355a98ece3d7fc9d022e759d05378060c86e2",
      "tree": "d6d76f94f2688f9bcee4c961dafc4cc3ec97a6bd",
      "parents": [
        "9c329b8b6440823ef94bffebc0b1098e8b2ad622"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Mar 10 16:55:43 2015 -0700"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Mon Mar 16 22:25:26 2015 +0000"
      },
      "message": "Output modified bcp47 tag in ResTable_config::toString()\n\nWe expect to be able to parse the output of ResTable_config::toString(),\nso it should use modified bcp47 (b+en+Latn+US).\n\nChange-Id: I597a1779a1fa5cff171c473e6a0368d93b9c7722\n"
    },
    {
      "commit": "6521a1b7430e7b3298633236645e2c0b5fd56c00",
      "tree": "73fa9edcde604fc9048807998bd2fa2a7df43fdc",
      "parents": [
        "60cd30d99e69ada6d3e3e072ef64e36c4a2ba34d"
      ],
      "author": {
        "name": "Vishwath Mohan",
        "email": "vishwath@google.com",
        "time": "Wed Mar 11 16:08:37 2015 -0700"
      },
      "committer": {
        "name": "Vishwath Mohan",
        "email": "vishwath@google.com",
        "time": "Wed Mar 11 16:36:53 2015 -0700"
      },
      "message": "Enforce null-termination in ResStringPool::stringAt\n\nRejects any non null-terminated string that a caller asks\nResStringPool::stringAt for, returning NULL instead.\n\nThe rationale for returning NULL rather than amending the string to add\na null-terminator is that conformant APK files will have all their\nstrings null-terminated anyway, and that this is a possible signal of a\nmalformed package.\n\nBug: 15288069\nChange-Id: I370937b92f2cadf67fbd54203cbc7d1494be969f\n"
    },
    {
      "commit": "6a2c23dc1bb17b3a2819a33dc6af77b293de1aae",
      "tree": "e4dc3e714d835e93dce3c34f1a487f9ec490db9f",
      "parents": [
        "53776a2b3c18f3eb2217e5e3af4dda187d0fee62"
      ],
      "author": {
        "name": "Vishwath Mohan",
        "email": "vishwath@google.com",
        "time": "Mon Mar 09 18:55:11 2015 -0700"
      },
      "committer": {
        "name": "Vishwath Mohan",
        "email": "vishwath@google.com",
        "time": "Tue Mar 10 12:34:08 2015 -0700"
      },
      "message": "Prevent integer overflow in ResourceTypes\n\nAdds checks to 2 malloc() calls to ensure that the finally allocated\nbuffer size is not vulnerable to integer overflows. Also includes a\nsanity check on the upper bound for type_info.numEntries before each\ncall.\n\nBug: 15171384\nChange-Id: Ifdf0276bcca7e3d93da7c3577b9486d3c03a9d03\n"
    },
    {
      "commit": "23eeb2b8aefce56a0a35a6fc460bd8718157e902",
      "tree": "a0a612939f95de6ffd1bb419fe155aba977bdf73",
      "parents": [
        "419389c52a2c81cbb0b4615d6b0b1c1253c3469c",
        "287c53f4a8bade1cb6c2dd2fe858da9c303e3e3d"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Feb 24 13:09:55 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Feb 24 13:09:55 2015 +0000"
      },
      "message": "am 287c53f4: am 76507a64: am 72dc62ea: Merge \"Track removal of refcounts from FileMap.\"\n\n* commit \u0027287c53f4a8bade1cb6c2dd2fe858da9c303e3e3d\u0027:\n  Track removal of refcounts from FileMap.\n"
    },
    {
      "commit": "76507a64b530c757dc284f1f4d0807ffbfd9a701",
      "tree": "18ec820c1dd7fb03a97636fcc5451fd88e049cc2",
      "parents": [
        "948682d15f1a4a6676318213a49b50b967cfae27",
        "72dc62ead214bdec5c46d42f4e859b139dba0a00"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Feb 24 12:56:52 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Feb 24 12:56:52 2015 +0000"
      },
      "message": "am 72dc62ea: Merge \"Track removal of refcounts from FileMap.\"\n\n* commit \u002772dc62ead214bdec5c46d42f4e859b139dba0a00\u0027:\n  Track removal of refcounts from FileMap.\n"
    },
    {
      "commit": "688ff4cf0f93d1a886437884f23874e5595d59a3",
      "tree": "b8ef91775dfc3dff86d05aa5638b17dee597ca91",
      "parents": [
        "adb52ef7034d4d3e0eee58cedae2a343d29771b9"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Feb 23 15:47:54 2015 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Feb 23 15:47:54 2015 +0000"
      },
      "message": "Track removal of refcounts from FileMap.\n\nUse delete instead of release.\n\nChange-Id: I25c841b368aa9d51e9259399b94cafa2bbb7a076\n"
    },
    {
      "commit": "43a88535df62b8507717f796df6e46103c4bff95",
      "tree": "e4dd77d356d38abe3c5329a7f288640d3d719d99",
      "parents": [
        "0fa1d70ab1ea160842e59256819fe87e4bbff3ca",
        "d9bd08864eaf9d8847d974eadb81806b9e086a2d"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jan 20 22:03:16 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 20 22:03:16 2015 +0000"
      },
      "message": "am d9bd0886: am aee7225e: Merge \"Process base APK\" into lmp-mr1-dev automerge: 554a6f5\n\n* commit \u0027d9bd08864eaf9d8847d974eadb81806b9e086a2d\u0027:\n  Process base APK\n"
    },
    {
      "commit": "d9bd08864eaf9d8847d974eadb81806b9e086a2d",
      "tree": "7f3f1caed8501f6409955deb27db6fa211fbca62",
      "parents": [
        "a9c122af60621597f1d008c8a283074309383aac",
        "554a6f5278ec05077d8252249afc911897fbfe76"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Tue Jan 20 21:55:12 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jan 20 21:55:12 2015 +0000"
      },
      "message": "am aee7225e: Merge \"Process base APK\" into lmp-mr1-dev\nautomerge: 554a6f5\n\n* commit \u0027554a6f5278ec05077d8252249afc911897fbfe76\u0027:\n  Process base APK\n"
    },
    {
      "commit": "42eea270a0a2bc54f454312817c41ac357e3a884",
      "tree": "36a4b3f3f658c40be17f3ce7c4bc3b6836bc817a",
      "parents": [
        "8d47bc97e642cd0d0caf31d09efe05d8dc233f27"
      ],
      "author": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Thu Jan 15 17:01:39 2015 -0800"
      },
      "committer": {
        "name": "Adam Lesinski",
        "email": "adamlesinski@google.com",
        "time": "Fri Jan 16 14:11:30 2015 -0800"
      },
      "message": "Process base APK\n\nThe base APK may have resources with configurations that compete\nagainst some splits. The base APK must be involved in the selection\nof splits.\n\nBug:18982001\nChange-Id: Ieb29b5a36cf2c68e7831484d98a9fd275acd97e8\n"
    }
  ],
  "next": "33d0392d3e4c42a7d48e8bd1210a1525aca8c2d3"
}
