am 766df995: am d31b0e44: am 3bbb5e9a: Merge change Ib7a6c434 into eclair

Merge commit '766df995e30caa054cc25068e55f160c765590eb'

* commit '766df995e30caa054cc25068e55f160c765590eb':
  Fix some leaks.  This fixes the major malloc memory leak in allApps.  Still tracking some much more minor issues.
diff --git a/api/5.xml b/api/5.xml
index 6148047..95d9ed0 100644
--- a/api/5.xml
+++ b/api/5.xml
@@ -231060,21 +231060,6 @@
  visibility="protected"
 >
 </method>
-<method name="getOption"
- return="java.lang.Object"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="optID" type="int">
-</parameter>
-<exception name="SocketException" type="java.net.SocketException">
-</exception>
-</method>
 <method name="getTTL"
  return="byte"
  abstract="true"
@@ -231225,23 +231210,6 @@
 <exception name="IOException" type="java.io.IOException">
 </exception>
 </method>
-<method name="setOption"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="optID" type="int">
-</parameter>
-<parameter name="val" type="java.lang.Object">
-</parameter>
-<exception name="SocketException" type="java.net.SocketException">
-</exception>
-</method>
 <method name="setTTL"
  return="void"
  abstract="true"
@@ -300591,8 +300559,6 @@
 </parameter>
 <parameter name="replacement" type="java.lang.String">
 </parameter>
-<exception name="IllegalStateException" type="java.lang.IllegalStateException">
-</exception>
 </method>
 <method name="appendTail"
  return="java.lang.StringBuffer"
@@ -300892,8 +300858,6 @@
 >
 <parameter name="group" type="int">
 </parameter>
-<exception name="IllegalStateException" type="java.lang.IllegalStateException">
-</exception>
 </method>
 <method name="toMatchResult"
  return="java.util.regex.MatchResult"
@@ -300968,8 +300932,6 @@
 >
 <parameter name="pattern" type="java.lang.String">
 </parameter>
-<exception name="PatternSyntaxException" type="java.util.regex.PatternSyntaxException">
-</exception>
 </method>
 <method name="compile"
  return="java.util.regex.Pattern"
diff --git a/api/current.xml b/api/current.xml
index 43663bc..b57b2b2 100644
--- a/api/current.xml
+++ b/api/current.xml
@@ -208967,7 +208967,7 @@
 </parameter>
 <parameter name="offset" type="int">
 </parameter>
-<parameter name="count" type="int">
+<parameter name="length" type="int">
 </parameter>
 <exception name="IOException" type="java.io.IOException">
 </exception>
@@ -231929,21 +231929,6 @@
  visibility="protected"
 >
 </method>
-<method name="getOption"
- return="java.lang.Object"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="optID" type="int">
-</parameter>
-<exception name="SocketException" type="java.net.SocketException">
-</exception>
-</method>
 <method name="getTTL"
  return="byte"
  abstract="true"
@@ -232094,23 +232079,6 @@
 <exception name="IOException" type="java.io.IOException">
 </exception>
 </method>
-<method name="setOption"
- return="void"
- abstract="true"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="optID" type="int">
-</parameter>
-<parameter name="val" type="java.lang.Object">
-</parameter>
-<exception name="SocketException" type="java.net.SocketException">
-</exception>
-</method>
 <method name="setTTL"
  return="void"
  abstract="true"
@@ -243681,7 +243649,7 @@
  return="void"
  abstract="false"
  native="false"
- synchronized="true"
+ synchronized="false"
  static="false"
  final="true"
  deprecated="not deprecated"
@@ -243914,8 +243882,6 @@
 </parameter>
 <parameter name="aliases" type="java.lang.String[]">
 </parameter>
-<exception name="IllegalCharsetNameException" type="java.nio.charset.IllegalCharsetNameException">
-</exception>
 </constructor>
 <method name="aliases"
  return="java.util.Set&lt;java.lang.String&gt;"
@@ -244028,7 +243994,7 @@
  return="java.nio.ByteBuffer"
  abstract="false"
  native="false"
- synchronized="true"
+ synchronized="false"
  static="false"
  final="true"
  deprecated="not deprecated"
@@ -244075,10 +244041,6 @@
 >
 <parameter name="charsetName" type="java.lang.String">
 </parameter>
-<exception name="IllegalCharsetNameException" type="java.nio.charset.IllegalCharsetNameException">
-</exception>
-<exception name="UnsupportedCharsetException" type="java.nio.charset.UnsupportedCharsetException">
-</exception>
 </method>
 <method name="hashCode"
  return="int"
@@ -244106,7 +244068,7 @@
  return="boolean"
  abstract="false"
  native="false"
- synchronized="false"
+ synchronized="true"
  static="true"
  final="false"
  deprecated="not deprecated"
@@ -244114,8 +244076,6 @@
 >
 <parameter name="charsetName" type="java.lang.String">
 </parameter>
-<exception name="IllegalCharsetNameException" type="java.nio.charset.IllegalCharsetNameException">
-</exception>
 </method>
 <method name="name"
  return="java.lang.String"
@@ -276216,8 +276176,6 @@
 >
 <implements name="java.lang.Cloneable">
 </implements>
-<implements name="java.util.List">
-</implements>
 <implements name="java.util.RandomAccess">
 </implements>
 <implements name="java.io.Serializable">
@@ -276229,6 +276187,8 @@
  deprecated="not deprecated"
  visibility="public"
 >
+<parameter name="capacity" type="int">
+</parameter>
 </constructor>
 <constructor name="ArrayList"
  type="java.util.ArrayList"
@@ -276237,8 +276197,6 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="capacity" type="int">
-</parameter>
 </constructor>
 <constructor name="ArrayList"
  type="java.util.ArrayList"
@@ -276284,7 +276242,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="location" type="int">
+<parameter name="index" type="int">
 </parameter>
 </method>
 <method name="size"
@@ -281608,8 +281566,6 @@
 >
 <implements name="java.lang.Cloneable">
 </implements>
-<implements name="java.util.Map">
-</implements>
 <implements name="java.io.Serializable">
 </implements>
 <constructor name="HashMap"
@@ -298437,7 +298393,7 @@
  return="void"
  abstract="false"
  native="false"
- synchronized="false"
+ synchronized="true"
  static="false"
  final="false"
  deprecated="not deprecated"
@@ -301460,8 +301416,6 @@
 </parameter>
 <parameter name="replacement" type="java.lang.String">
 </parameter>
-<exception name="IllegalStateException" type="java.lang.IllegalStateException">
-</exception>
 </method>
 <method name="appendTail"
  return="java.lang.StringBuffer"
@@ -301486,22 +301440,11 @@
  deprecated="not deprecated"
  visibility="public"
 >
-</method>
-<method name="end"
- return="int"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
 <parameter name="group" type="int">
 </parameter>
 </method>
-<method name="find"
- return="boolean"
+<method name="end"
+ return="int"
  abstract="false"
  native="false"
  synchronized="false"
@@ -301524,8 +301467,8 @@
 <parameter name="start" type="int">
 </parameter>
 </method>
-<method name="group"
- return="java.lang.String"
+<method name="find"
+ return="boolean"
  abstract="false"
  native="false"
  synchronized="false"
@@ -301548,6 +301491,17 @@
 <parameter name="group" type="int">
 </parameter>
 </method>
+<method name="group"
+ return="java.lang.String"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
 <method name="groupCount"
  return="int"
  abstract="false"
@@ -301722,6 +301676,8 @@
  deprecated="not deprecated"
  visibility="public"
 >
+<parameter name="input" type="java.lang.CharSequence">
+</parameter>
 </method>
 <method name="reset"
  return="java.util.regex.Matcher"
@@ -301733,21 +301689,6 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="input" type="java.lang.CharSequence">
-</parameter>
-</method>
-<method name="start"
- return="int"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<exception name="IllegalStateException" type="java.lang.IllegalStateException">
-</exception>
 </method>
 <method name="start"
  return="int"
@@ -301764,6 +301705,17 @@
 <exception name="IllegalStateException" type="java.lang.IllegalStateException">
 </exception>
 </method>
+<method name="start"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
 <method name="toMatchResult"
  return="java.util.regex.MatchResult"
  abstract="false"
@@ -301837,6 +301789,8 @@
 >
 <parameter name="pattern" type="java.lang.String">
 </parameter>
+<parameter name="flags" type="int">
+</parameter>
 <exception name="PatternSyntaxException" type="java.util.regex.PatternSyntaxException">
 </exception>
 </method>
@@ -301852,10 +301806,6 @@
 >
 <parameter name="pattern" type="java.lang.String">
 </parameter>
-<parameter name="flags" type="int">
-</parameter>
-<exception name="PatternSyntaxException" type="java.util.regex.PatternSyntaxException">
-</exception>
 </method>
 <method name="flags"
  return="int"
@@ -301930,7 +301880,9 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="input" type="java.lang.CharSequence">
+<parameter name="inputSeq" type="java.lang.CharSequence">
+</parameter>
+<parameter name="limit" type="int">
 </parameter>
 </method>
 <method name="split"
@@ -301943,9 +301895,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="inputSeq" type="java.lang.CharSequence">
-</parameter>
-<parameter name="limit" type="int">
+<parameter name="input" type="java.lang.CharSequence">
 </parameter>
 </method>
 <field name="CANON_EQ"
diff --git a/cmds/app_process/Android.mk b/cmds/app_process/Android.mk
index a33f5cc..2391b72 100644
--- a/cmds/app_process/Android.mk
+++ b/cmds/app_process/Android.mk
@@ -7,6 +7,7 @@
 LOCAL_SHARED_LIBRARIES := \
 	libcutils \
 	libutils \
+	libbinder \
 	libandroid_runtime
 
 LOCAL_MODULE:= app_process
diff --git a/cmds/bootanimation/Android.mk b/cmds/bootanimation/Android.mk
index 3449de1..939b63f 100644
--- a/cmds/bootanimation/Android.mk
+++ b/cmds/bootanimation/Android.mk
@@ -17,6 +17,7 @@
 LOCAL_SHARED_LIBRARIES := \
 	libcutils \
 	libutils \
+	libbinder \
     libui \
 	libskia \
     libEGL \
diff --git a/core/java/android/ddm/DdmHandleHello.java b/core/java/android/ddm/DdmHandleHello.java
index c5d591f..0603ca5 100644
--- a/core/java/android/ddm/DdmHandleHello.java
+++ b/core/java/android/ddm/DdmHandleHello.java
@@ -152,8 +152,8 @@
             "hprof-heap-dump", "method-trace-profiling"
         };
 
-        if (Config.LOGD)
-            Log.d("ddm-heap", "Got feature list request");
+        if (Config.LOGV)
+            Log.v("ddm-heap", "Got feature list request");
 
         int size = 4 + 4 * features.length;
         for (int i = features.length-1; i >= 0; i--)
diff --git a/core/java/android/net/Uri.java b/core/java/android/net/Uri.java
index 9a1b65d..f2ea539 100644
--- a/core/java/android/net/Uri.java
+++ b/core/java/android/net/Uri.java
@@ -1567,51 +1567,40 @@
         if (isOpaque()) {
             throw new UnsupportedOperationException(NOT_HIERARCHICAL);
         }
+        if (key == null) {
+          throw new NullPointerException("key");
+        }
 
-        String query = getEncodedQuery();
-
+        final String query = getEncodedQuery();
         if (query == null) {
             return null;
         }
 
-        String encodedKey;
-        try {
-            encodedKey = URLEncoder.encode(key, DEFAULT_ENCODING);
-        } catch (UnsupportedEncodingException e) {
-            throw new AssertionError(e);
-        }
+        final String encodedKey = encode(key, null);
+        final int encodedKeyLength = encodedKey.length();
 
-        String prefix = encodedKey + "=";
+        int encodedKeySearchIndex = 0;
+        final int encodedKeySearchEnd = query.length() - (encodedKeyLength + 1);
 
-        if (query.length() < prefix.length()) {
-            return null;
-        }
-
-        int start;
-        if (query.startsWith(prefix)) {
-            // It's the first parameter.
-            start = prefix.length();
-        } else {
-            // It must be later in the query string.
-            prefix = "&" + prefix;
-            start = query.indexOf(prefix);
-
-            if (start == -1) {
-                // Not found.
-                return null;
+        while (encodedKeySearchIndex <= encodedKeySearchEnd) {
+            int keyIndex = query.indexOf(encodedKey, encodedKeySearchIndex);
+            if (keyIndex == -1) {
+                break;
             }
-
-            start += prefix.length();
+            final int equalsIndex = keyIndex + encodedKeyLength;
+            if (query.charAt(equalsIndex) != '=') {
+                encodedKeySearchIndex = equalsIndex + 1;
+                continue;
+            }
+            if (keyIndex == 0 || query.charAt(keyIndex - 1) == '&') {
+                int end = query.indexOf('&', equalsIndex);
+                if (end == -1) {
+                    end = query.length();
+                }
+                return decode(query.substring(equalsIndex + 1, end));
+            }
         }
-
-        // Find end of value.
-        int end = query.indexOf('&', start);
-        if (end == -1) {
-            end = query.length();
-        }
-
-        String value = query.substring(start, end);
-        return decode(value);
+        return null;
     }
 
     /** Identifies a null parcelled Uri. */
diff --git a/core/java/android/os/Debug.java b/core/java/android/os/Debug.java
index b4f64b6..b33e8be 100644
--- a/core/java/android/os/Debug.java
+++ b/core/java/android/os/Debug.java
@@ -753,6 +753,16 @@
     }
 
     /**
+     * Dumps the contents of VM reference tables (e.g. JNI locals and
+     * globals) to the log file.
+     *
+     * @hide
+     */
+    public static final void dumpReferenceTables() {
+        VMDebug.dumpReferenceTables();
+    }
+
+    /**
      * API for gathering and querying instruction counts.
      *
      * Example usage:
diff --git a/core/java/com/android/internal/logging/AndroidHandler.java b/core/java/com/android/internal/logging/AndroidHandler.java
index c4a1479..12f6a4f 100644
--- a/core/java/com/android/internal/logging/AndroidHandler.java
+++ b/core/java/com/android/internal/logging/AndroidHandler.java
@@ -17,12 +17,16 @@
 package com.android.internal.logging;
 
 import android.util.Log;
+import dalvik.system.DalvikLogging;
+import dalvik.system.DalvikLogHandler;
 
-import java.util.logging.*;
-import java.util.Date;
-import java.text.MessageFormat;
 import java.io.PrintWriter;
 import java.io.StringWriter;
+import java.util.logging.Formatter;
+import java.util.logging.Handler;
+import java.util.logging.Level;
+import java.util.logging.LogRecord;
+import java.util.logging.Logger;
 
 /**
  * Implements a {@link java.util.logging.Logger} handler that writes to the Android log. The
@@ -77,7 +81,7 @@
  *   </tr>
  * </table>
  */
-public class AndroidHandler extends Handler {
+public class AndroidHandler extends Handler implements DalvikLogHandler {
     /**
      * Holds the formatter for all Android log handlers.
      */
@@ -118,33 +122,13 @@
 
     @Override
     public void publish(LogRecord record) {
+        int level = getAndroidLevel(record.getLevel());
+        String tag = DalvikLogging.loggerNameToTag(record.getLoggerName());
+        if (!Log.isLoggable(tag, level)) {
+            return;
+        }
+
         try {
-            int level = getAndroidLevel(record.getLevel());
-            String tag = record.getLoggerName();
-
-            if (tag == null) {
-                // Anonymous logger.
-                tag = "null";    
-            } else {
-                // Tags must be <= 23 characters.
-                int length = tag.length();
-                if (length > 23) {
-                    // Most loggers use the full class name. Try dropping the
-                    // package.
-                    int lastPeriod = tag.lastIndexOf(".");
-                    if (length - lastPeriod - 1 <= 23) {
-                        tag = tag.substring(lastPeriod + 1);
-                    } else {
-                        // Use last 23 chars.
-                        tag = tag.substring(tag.length() - 23);
-                    }
-                }
-            }
-
-            if (!Log.isLoggable(tag, level)) {
-                return;
-            }
-
             String message = getFormatter().format(record);
             Log.println(level, tag, message);
         } catch (RuntimeException e) {
@@ -152,12 +136,26 @@
         }
     }
 
+    public void publish(Logger source, String tag, Level level, String message) {
+        // TODO: avoid ducking into native 2x; we aren't saving any formatter calls
+        int priority = getAndroidLevel(level);
+        if (!Log.isLoggable(tag, priority)) {
+            return;
+        }
+
+        try {
+            Log.println(priority, tag, message);
+        } catch (RuntimeException e) {
+            Log.e("AndroidHandler", "Error logging message.", e);
+        }
+    }
+
     /**
      * Converts a {@link java.util.logging.Logger} logging level into an Android one.
-     * 
+     *
      * @param level The {@link java.util.logging.Logger} logging level.
-     * 
-     * @return The resulting Android logging level. 
+     *
+     * @return The resulting Android logging level.
      */
     static int getAndroidLevel(Level level) {
         int value = level.intValue();
@@ -171,5 +169,4 @@
             return Log.DEBUG;
         }
     }
-    
 }
diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp
index f61e247..82fa93e 100644
--- a/core/jni/AndroidRuntime.cpp
+++ b/core/jni/AndroidRuntime.cpp
@@ -750,6 +750,18 @@
         opt.optionString = "-Xjitprofile";
         mOptions.add(opt);
     }
+
+    /*
+     * Disable optimizations by setting the corresponding bit to 1.
+     */
+    char jitOptBuf[sizeof("-Xjitdisableopt:") + PROPERTY_VALUE_MAX];
+    property_get("dalvik.vm.jit.disableopt", propBuf, "");
+    if (strlen(propBuf) > 0) {
+        strcpy(jitOptBuf, "-Xjitdisableopt:");
+        strcat(jitOptBuf, propBuf);
+        opt.optionString = jitOptBuf;
+        mOptions.add(opt);
+    }
 #endif
 
     if (executionMode == kEMIntPortable) {
diff --git a/core/jni/android_net_LocalSocketImpl.cpp b/core/jni/android_net_LocalSocketImpl.cpp
index f14b9fa..e58794b 100644
--- a/core/jni/android_net_LocalSocketImpl.cpp
+++ b/core/jni/android_net_LocalSocketImpl.cpp
@@ -35,8 +35,6 @@
 
 #include <cutils/sockets.h>
 #include <netinet/tcp.h>
-#include <cutils/properties.h>
-#include <cutils/adb_networking.h>
 
 namespace android {
 
diff --git a/core/res/res/values-mcc204-cs/strings.xml b/core/res/res/values-mcc204-cs/strings.xml
index 94786f1..7d96230 100644
--- a/core/res/res/values-mcc204-cs/strings.xml
+++ b/core/res/res/values-mcc204-cs/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="2972154133076909542">"nl_nl"</string>
+    <string name="locale_replacement">"nl_nl"</string>
 </resources>
diff --git a/core/res/res/values-mcc204-da/strings.xml b/core/res/res/values-mcc204-da/strings.xml
index 94786f1..7d96230 100644
--- a/core/res/res/values-mcc204-da/strings.xml
+++ b/core/res/res/values-mcc204-da/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="2972154133076909542">"nl_nl"</string>
+    <string name="locale_replacement">"nl_nl"</string>
 </resources>
diff --git a/core/res/res/values-mcc204-de/strings.xml b/core/res/res/values-mcc204-de/strings.xml
index 94786f1..7d96230 100644
--- a/core/res/res/values-mcc204-de/strings.xml
+++ b/core/res/res/values-mcc204-de/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="2972154133076909542">"nl_nl"</string>
+    <string name="locale_replacement">"nl_nl"</string>
 </resources>
diff --git a/core/res/res/values-mcc204-el/strings.xml b/core/res/res/values-mcc204-el/strings.xml
index 94786f1..97bfe65 100644
--- a/core/res/res/values-mcc204-el/strings.xml
+++ b/core/res/res/values-mcc204-el/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="2972154133076909542">"nl_nl"</string>
+    <string name="locale_replacement">"el_GR"</string>
 </resources>
diff --git a/core/res/res/values-mcc204-es-rUS/strings.xml b/core/res/res/values-mcc204-es-rUS/strings.xml
index 94786f1..7d96230 100644
--- a/core/res/res/values-mcc204-es-rUS/strings.xml
+++ b/core/res/res/values-mcc204-es-rUS/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="2972154133076909542">"nl_nl"</string>
+    <string name="locale_replacement">"nl_nl"</string>
 </resources>
diff --git a/core/res/res/values-mcc204-es/strings.xml b/core/res/res/values-mcc204-es/strings.xml
index 94786f1..7d96230 100644
--- a/core/res/res/values-mcc204-es/strings.xml
+++ b/core/res/res/values-mcc204-es/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="2972154133076909542">"nl_nl"</string>
+    <string name="locale_replacement">"nl_nl"</string>
 </resources>
diff --git a/core/res/res/values-mcc204-fr/strings.xml b/core/res/res/values-mcc204-fr/strings.xml
index 94786f1..7d96230 100644
--- a/core/res/res/values-mcc204-fr/strings.xml
+++ b/core/res/res/values-mcc204-fr/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="2972154133076909542">"nl_nl"</string>
+    <string name="locale_replacement">"nl_nl"</string>
 </resources>
diff --git a/core/res/res/values-mcc204-it/strings.xml b/core/res/res/values-mcc204-it/strings.xml
index 94786f1..7d96230 100644
--- a/core/res/res/values-mcc204-it/strings.xml
+++ b/core/res/res/values-mcc204-it/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="2972154133076909542">"nl_nl"</string>
+    <string name="locale_replacement">"nl_nl"</string>
 </resources>
diff --git a/core/res/res/values-mcc204-ja/strings.xml b/core/res/res/values-mcc204-ja/strings.xml
index 94786f1..7d96230 100644
--- a/core/res/res/values-mcc204-ja/strings.xml
+++ b/core/res/res/values-mcc204-ja/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="2972154133076909542">"nl_nl"</string>
+    <string name="locale_replacement">"nl_nl"</string>
 </resources>
diff --git a/core/res/res/values-mcc204-ko/strings.xml b/core/res/res/values-mcc204-ko/strings.xml
index 94786f1..7d96230 100644
--- a/core/res/res/values-mcc204-ko/strings.xml
+++ b/core/res/res/values-mcc204-ko/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="2972154133076909542">"nl_nl"</string>
+    <string name="locale_replacement">"nl_nl"</string>
 </resources>
diff --git a/core/res/res/values-mcc204-nb/strings.xml b/core/res/res/values-mcc204-nb/strings.xml
deleted file mode 100644
index 94786f1..0000000
--- a/core/res/res/values-mcc204-nb/strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="2972154133076909542">"nl_nl"</string>
-</resources>
diff --git a/core/res/res/values-mcc204-nl/strings.xml b/core/res/res/values-mcc204-nl/strings.xml
index 94786f1..7d96230 100644
--- a/core/res/res/values-mcc204-nl/strings.xml
+++ b/core/res/res/values-mcc204-nl/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="2972154133076909542">"nl_nl"</string>
+    <string name="locale_replacement">"nl_nl"</string>
 </resources>
diff --git a/core/res/res/values-mcc204-pl/strings.xml b/core/res/res/values-mcc204-pl/strings.xml
index 94786f1..7d96230 100644
--- a/core/res/res/values-mcc204-pl/strings.xml
+++ b/core/res/res/values-mcc204-pl/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="2972154133076909542">"nl_nl"</string>
+    <string name="locale_replacement">"nl_nl"</string>
 </resources>
diff --git a/core/res/res/values-mcc204-pt-rPT/strings.xml b/core/res/res/values-mcc204-pt-rPT/strings.xml
index 94786f1..7d96230 100644
--- a/core/res/res/values-mcc204-pt-rPT/strings.xml
+++ b/core/res/res/values-mcc204-pt-rPT/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="2972154133076909542">"nl_nl"</string>
+    <string name="locale_replacement">"nl_nl"</string>
 </resources>
diff --git a/core/res/res/values-mcc204-pt/strings.xml b/core/res/res/values-mcc204-pt/strings.xml
index 94786f1..7d96230 100644
--- a/core/res/res/values-mcc204-pt/strings.xml
+++ b/core/res/res/values-mcc204-pt/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="2972154133076909542">"nl_nl"</string>
+    <string name="locale_replacement">"nl_nl"</string>
 </resources>
diff --git a/core/res/res/values-mcc204-ru/strings.xml b/core/res/res/values-mcc204-ru/strings.xml
index 94786f1..7d96230 100644
--- a/core/res/res/values-mcc204-ru/strings.xml
+++ b/core/res/res/values-mcc204-ru/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="2972154133076909542">"nl_nl"</string>
+    <string name="locale_replacement">"nl_nl"</string>
 </resources>
diff --git a/core/res/res/values-mcc204-sv/strings.xml b/core/res/res/values-mcc204-sv/strings.xml
index 94786f1..7d96230 100644
--- a/core/res/res/values-mcc204-sv/strings.xml
+++ b/core/res/res/values-mcc204-sv/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="2972154133076909542">"nl_nl"</string>
+    <string name="locale_replacement">"nl_nl"</string>
 </resources>
diff --git a/core/res/res/values-mcc204-tr/strings.xml b/core/res/res/values-mcc204-tr/strings.xml
index 94786f1..7d96230 100644
--- a/core/res/res/values-mcc204-tr/strings.xml
+++ b/core/res/res/values-mcc204-tr/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="2972154133076909542">"nl_nl"</string>
+    <string name="locale_replacement">"nl_nl"</string>
 </resources>
diff --git a/core/res/res/values-mcc204-zh-rCN/strings.xml b/core/res/res/values-mcc204-zh-rCN/strings.xml
index 94786f1..7d96230 100644
--- a/core/res/res/values-mcc204-zh-rCN/strings.xml
+++ b/core/res/res/values-mcc204-zh-rCN/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="2972154133076909542">"nl_nl"</string>
+    <string name="locale_replacement">"nl_nl"</string>
 </resources>
diff --git a/core/res/res/values-mcc204-zh-rTW/strings.xml b/core/res/res/values-mcc204-zh-rTW/strings.xml
index 94786f1..7d96230 100644
--- a/core/res/res/values-mcc204-zh-rTW/strings.xml
+++ b/core/res/res/values-mcc204-zh-rTW/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="2972154133076909542">"nl_nl"</string>
+    <string name="locale_replacement">"nl_nl"</string>
 </resources>
diff --git a/core/res/res/values-mcc230-cs/strings.xml b/core/res/res/values-mcc230-cs/strings.xml
index 63ade62..d3ecdbb 100644
--- a/core/res/res/values-mcc230-cs/strings.xml
+++ b/core/res/res/values-mcc230-cs/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="9011721823833053909">"cs_cz"</string>
+    <string name="locale_replacement">"cs_cz"</string>
 </resources>
diff --git a/core/res/res/values-mcc230-da/strings.xml b/core/res/res/values-mcc230-da/strings.xml
index 63ade62..d3ecdbb 100644
--- a/core/res/res/values-mcc230-da/strings.xml
+++ b/core/res/res/values-mcc230-da/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="9011721823833053909">"cs_cz"</string>
+    <string name="locale_replacement">"cs_cz"</string>
 </resources>
diff --git a/core/res/res/values-mcc230-de/strings.xml b/core/res/res/values-mcc230-de/strings.xml
index 63ade62..d3ecdbb 100644
--- a/core/res/res/values-mcc230-de/strings.xml
+++ b/core/res/res/values-mcc230-de/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="9011721823833053909">"cs_cz"</string>
+    <string name="locale_replacement">"cs_cz"</string>
 </resources>
diff --git a/core/res/res/values-mcc230-el/strings.xml b/core/res/res/values-mcc230-el/strings.xml
index 63ade62..97bfe65 100644
--- a/core/res/res/values-mcc230-el/strings.xml
+++ b/core/res/res/values-mcc230-el/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="9011721823833053909">"cs_cz"</string>
+    <string name="locale_replacement">"el_GR"</string>
 </resources>
diff --git a/core/res/res/values-mcc230-es-rUS/strings.xml b/core/res/res/values-mcc230-es-rUS/strings.xml
index 63ade62..d3ecdbb 100644
--- a/core/res/res/values-mcc230-es-rUS/strings.xml
+++ b/core/res/res/values-mcc230-es-rUS/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="9011721823833053909">"cs_cz"</string>
+    <string name="locale_replacement">"cs_cz"</string>
 </resources>
diff --git a/core/res/res/values-mcc230-es/strings.xml b/core/res/res/values-mcc230-es/strings.xml
index 63ade62..d3ecdbb 100644
--- a/core/res/res/values-mcc230-es/strings.xml
+++ b/core/res/res/values-mcc230-es/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="9011721823833053909">"cs_cz"</string>
+    <string name="locale_replacement">"cs_cz"</string>
 </resources>
diff --git a/core/res/res/values-mcc230-fr/strings.xml b/core/res/res/values-mcc230-fr/strings.xml
index 63ade62..d3ecdbb 100644
--- a/core/res/res/values-mcc230-fr/strings.xml
+++ b/core/res/res/values-mcc230-fr/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="9011721823833053909">"cs_cz"</string>
+    <string name="locale_replacement">"cs_cz"</string>
 </resources>
diff --git a/core/res/res/values-mcc230-it/strings.xml b/core/res/res/values-mcc230-it/strings.xml
index 63ade62..d3ecdbb 100644
--- a/core/res/res/values-mcc230-it/strings.xml
+++ b/core/res/res/values-mcc230-it/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="9011721823833053909">"cs_cz"</string>
+    <string name="locale_replacement">"cs_cz"</string>
 </resources>
diff --git a/core/res/res/values-mcc230-ja/strings.xml b/core/res/res/values-mcc230-ja/strings.xml
index 63ade62..d3ecdbb 100644
--- a/core/res/res/values-mcc230-ja/strings.xml
+++ b/core/res/res/values-mcc230-ja/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="9011721823833053909">"cs_cz"</string>
+    <string name="locale_replacement">"cs_cz"</string>
 </resources>
diff --git a/core/res/res/values-mcc230-ko/strings.xml b/core/res/res/values-mcc230-ko/strings.xml
index 63ade62..d3ecdbb 100644
--- a/core/res/res/values-mcc230-ko/strings.xml
+++ b/core/res/res/values-mcc230-ko/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="9011721823833053909">"cs_cz"</string>
+    <string name="locale_replacement">"cs_cz"</string>
 </resources>
diff --git a/core/res/res/values-mcc230-nb/strings.xml b/core/res/res/values-mcc230-nb/strings.xml
deleted file mode 100644
index 63ade62..0000000
--- a/core/res/res/values-mcc230-nb/strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="9011721823833053909">"cs_cz"</string>
-</resources>
diff --git a/core/res/res/values-mcc230-nl/strings.xml b/core/res/res/values-mcc230-nl/strings.xml
index 63ade62..d3ecdbb 100644
--- a/core/res/res/values-mcc230-nl/strings.xml
+++ b/core/res/res/values-mcc230-nl/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="9011721823833053909">"cs_cz"</string>
+    <string name="locale_replacement">"cs_cz"</string>
 </resources>
diff --git a/core/res/res/values-mcc230-pl/strings.xml b/core/res/res/values-mcc230-pl/strings.xml
index 63ade62..d3ecdbb 100644
--- a/core/res/res/values-mcc230-pl/strings.xml
+++ b/core/res/res/values-mcc230-pl/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="9011721823833053909">"cs_cz"</string>
+    <string name="locale_replacement">"cs_cz"</string>
 </resources>
diff --git a/core/res/res/values-mcc230-pt-rPT/strings.xml b/core/res/res/values-mcc230-pt-rPT/strings.xml
index 63ade62..d3ecdbb 100644
--- a/core/res/res/values-mcc230-pt-rPT/strings.xml
+++ b/core/res/res/values-mcc230-pt-rPT/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="9011721823833053909">"cs_cz"</string>
+    <string name="locale_replacement">"cs_cz"</string>
 </resources>
diff --git a/core/res/res/values-mcc230-pt/strings.xml b/core/res/res/values-mcc230-pt/strings.xml
index 63ade62..d3ecdbb 100644
--- a/core/res/res/values-mcc230-pt/strings.xml
+++ b/core/res/res/values-mcc230-pt/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="9011721823833053909">"cs_cz"</string>
+    <string name="locale_replacement">"cs_cz"</string>
 </resources>
diff --git a/core/res/res/values-mcc230-ru/strings.xml b/core/res/res/values-mcc230-ru/strings.xml
index 63ade62..d3ecdbb 100644
--- a/core/res/res/values-mcc230-ru/strings.xml
+++ b/core/res/res/values-mcc230-ru/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="9011721823833053909">"cs_cz"</string>
+    <string name="locale_replacement">"cs_cz"</string>
 </resources>
diff --git a/core/res/res/values-mcc230-sv/strings.xml b/core/res/res/values-mcc230-sv/strings.xml
index 63ade62..d3ecdbb 100644
--- a/core/res/res/values-mcc230-sv/strings.xml
+++ b/core/res/res/values-mcc230-sv/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="9011721823833053909">"cs_cz"</string>
+    <string name="locale_replacement">"cs_cz"</string>
 </resources>
diff --git a/core/res/res/values-mcc230-tr/strings.xml b/core/res/res/values-mcc230-tr/strings.xml
index 63ade62..d3ecdbb 100644
--- a/core/res/res/values-mcc230-tr/strings.xml
+++ b/core/res/res/values-mcc230-tr/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="9011721823833053909">"cs_cz"</string>
+    <string name="locale_replacement">"cs_cz"</string>
 </resources>
diff --git a/core/res/res/values-mcc230-zh-rCN/strings.xml b/core/res/res/values-mcc230-zh-rCN/strings.xml
index 63ade62..d3ecdbb 100644
--- a/core/res/res/values-mcc230-zh-rCN/strings.xml
+++ b/core/res/res/values-mcc230-zh-rCN/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="9011721823833053909">"cs_cz"</string>
+    <string name="locale_replacement">"cs_cz"</string>
 </resources>
diff --git a/core/res/res/values-mcc230-zh-rTW/strings.xml b/core/res/res/values-mcc230-zh-rTW/strings.xml
index 63ade62..d3ecdbb 100644
--- a/core/res/res/values-mcc230-zh-rTW/strings.xml
+++ b/core/res/res/values-mcc230-zh-rTW/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="9011721823833053909">"cs_cz"</string>
+    <string name="locale_replacement">"cs_cz"</string>
 </resources>
diff --git a/core/res/res/values-mcc232-cs/strings.xml b/core/res/res/values-mcc232-cs/strings.xml
index b028927..4773838 100644
--- a/core/res/res/values-mcc232-cs/strings.xml
+++ b/core/res/res/values-mcc232-cs/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="166900303893651370">"de_at"</string>
+    <string name="locale_replacement">"de_at"</string>
 </resources>
diff --git a/core/res/res/values-mcc232-da/strings.xml b/core/res/res/values-mcc232-da/strings.xml
index b028927..4773838 100644
--- a/core/res/res/values-mcc232-da/strings.xml
+++ b/core/res/res/values-mcc232-da/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="166900303893651370">"de_at"</string>
+    <string name="locale_replacement">"de_at"</string>
 </resources>
diff --git a/core/res/res/values-mcc232-de/strings.xml b/core/res/res/values-mcc232-de/strings.xml
index b028927..4773838 100644
--- a/core/res/res/values-mcc232-de/strings.xml
+++ b/core/res/res/values-mcc232-de/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="166900303893651370">"de_at"</string>
+    <string name="locale_replacement">"de_at"</string>
 </resources>
diff --git a/core/res/res/values-mcc232-el/strings.xml b/core/res/res/values-mcc232-el/strings.xml
index b028927..97bfe65 100644
--- a/core/res/res/values-mcc232-el/strings.xml
+++ b/core/res/res/values-mcc232-el/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="166900303893651370">"de_at"</string>
+    <string name="locale_replacement">"el_GR"</string>
 </resources>
diff --git a/core/res/res/values-mcc232-es-rUS/strings.xml b/core/res/res/values-mcc232-es-rUS/strings.xml
index b028927..4773838 100644
--- a/core/res/res/values-mcc232-es-rUS/strings.xml
+++ b/core/res/res/values-mcc232-es-rUS/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="166900303893651370">"de_at"</string>
+    <string name="locale_replacement">"de_at"</string>
 </resources>
diff --git a/core/res/res/values-mcc232-es/strings.xml b/core/res/res/values-mcc232-es/strings.xml
index b028927..4773838 100644
--- a/core/res/res/values-mcc232-es/strings.xml
+++ b/core/res/res/values-mcc232-es/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="166900303893651370">"de_at"</string>
+    <string name="locale_replacement">"de_at"</string>
 </resources>
diff --git a/core/res/res/values-mcc232-fr/strings.xml b/core/res/res/values-mcc232-fr/strings.xml
index b028927..4773838 100644
--- a/core/res/res/values-mcc232-fr/strings.xml
+++ b/core/res/res/values-mcc232-fr/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="166900303893651370">"de_at"</string>
+    <string name="locale_replacement">"de_at"</string>
 </resources>
diff --git a/core/res/res/values-mcc232-it/strings.xml b/core/res/res/values-mcc232-it/strings.xml
index b028927..4773838 100644
--- a/core/res/res/values-mcc232-it/strings.xml
+++ b/core/res/res/values-mcc232-it/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="166900303893651370">"de_at"</string>
+    <string name="locale_replacement">"de_at"</string>
 </resources>
diff --git a/core/res/res/values-mcc232-ja/strings.xml b/core/res/res/values-mcc232-ja/strings.xml
index b028927..4773838 100644
--- a/core/res/res/values-mcc232-ja/strings.xml
+++ b/core/res/res/values-mcc232-ja/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="166900303893651370">"de_at"</string>
+    <string name="locale_replacement">"de_at"</string>
 </resources>
diff --git a/core/res/res/values-mcc232-ko/strings.xml b/core/res/res/values-mcc232-ko/strings.xml
index b028927..4773838 100644
--- a/core/res/res/values-mcc232-ko/strings.xml
+++ b/core/res/res/values-mcc232-ko/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="166900303893651370">"de_at"</string>
+    <string name="locale_replacement">"de_at"</string>
 </resources>
diff --git a/core/res/res/values-mcc232-nb/strings.xml b/core/res/res/values-mcc232-nb/strings.xml
deleted file mode 100644
index b028927..0000000
--- a/core/res/res/values-mcc232-nb/strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="166900303893651370">"de_at"</string>
-</resources>
diff --git a/core/res/res/values-mcc232-nl/strings.xml b/core/res/res/values-mcc232-nl/strings.xml
index b028927..4773838 100644
--- a/core/res/res/values-mcc232-nl/strings.xml
+++ b/core/res/res/values-mcc232-nl/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="166900303893651370">"de_at"</string>
+    <string name="locale_replacement">"de_at"</string>
 </resources>
diff --git a/core/res/res/values-mcc232-pl/strings.xml b/core/res/res/values-mcc232-pl/strings.xml
index b028927..4773838 100644
--- a/core/res/res/values-mcc232-pl/strings.xml
+++ b/core/res/res/values-mcc232-pl/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="166900303893651370">"de_at"</string>
+    <string name="locale_replacement">"de_at"</string>
 </resources>
diff --git a/core/res/res/values-mcc232-pt-rPT/strings.xml b/core/res/res/values-mcc232-pt-rPT/strings.xml
index b028927..4773838 100644
--- a/core/res/res/values-mcc232-pt-rPT/strings.xml
+++ b/core/res/res/values-mcc232-pt-rPT/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="166900303893651370">"de_at"</string>
+    <string name="locale_replacement">"de_at"</string>
 </resources>
diff --git a/core/res/res/values-mcc232-pt/strings.xml b/core/res/res/values-mcc232-pt/strings.xml
index b028927..4773838 100644
--- a/core/res/res/values-mcc232-pt/strings.xml
+++ b/core/res/res/values-mcc232-pt/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="166900303893651370">"de_at"</string>
+    <string name="locale_replacement">"de_at"</string>
 </resources>
diff --git a/core/res/res/values-mcc232-ru/strings.xml b/core/res/res/values-mcc232-ru/strings.xml
index b028927..4773838 100644
--- a/core/res/res/values-mcc232-ru/strings.xml
+++ b/core/res/res/values-mcc232-ru/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="166900303893651370">"de_at"</string>
+    <string name="locale_replacement">"de_at"</string>
 </resources>
diff --git a/core/res/res/values-mcc232-sv/strings.xml b/core/res/res/values-mcc232-sv/strings.xml
index b028927..4773838 100644
--- a/core/res/res/values-mcc232-sv/strings.xml
+++ b/core/res/res/values-mcc232-sv/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="166900303893651370">"de_at"</string>
+    <string name="locale_replacement">"de_at"</string>
 </resources>
diff --git a/core/res/res/values-mcc232-tr/strings.xml b/core/res/res/values-mcc232-tr/strings.xml
index b028927..4773838 100644
--- a/core/res/res/values-mcc232-tr/strings.xml
+++ b/core/res/res/values-mcc232-tr/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="166900303893651370">"de_at"</string>
+    <string name="locale_replacement">"de_at"</string>
 </resources>
diff --git a/core/res/res/values-mcc232-zh-rCN/strings.xml b/core/res/res/values-mcc232-zh-rCN/strings.xml
index b028927..4773838 100644
--- a/core/res/res/values-mcc232-zh-rCN/strings.xml
+++ b/core/res/res/values-mcc232-zh-rCN/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="166900303893651370">"de_at"</string>
+    <string name="locale_replacement">"de_at"</string>
 </resources>
diff --git a/core/res/res/values-mcc232-zh-rTW/strings.xml b/core/res/res/values-mcc232-zh-rTW/strings.xml
index b028927..4773838 100644
--- a/core/res/res/values-mcc232-zh-rTW/strings.xml
+++ b/core/res/res/values-mcc232-zh-rTW/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="166900303893651370">"de_at"</string>
+    <string name="locale_replacement">"de_at"</string>
 </resources>
diff --git a/core/res/res/values-mcc234-cs/strings.xml b/core/res/res/values-mcc234-cs/strings.xml
index bd391e1..2538b73 100644
--- a/core/res/res/values-mcc234-cs/strings.xml
+++ b/core/res/res/values-mcc234-cs/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="233769627858930762">"en_gb"</string>
+    <string name="locale_replacement">"en_gb"</string>
 </resources>
diff --git a/core/res/res/values-mcc234-da/strings.xml b/core/res/res/values-mcc234-da/strings.xml
index bd391e1..2538b73 100644
--- a/core/res/res/values-mcc234-da/strings.xml
+++ b/core/res/res/values-mcc234-da/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="233769627858930762">"en_gb"</string>
+    <string name="locale_replacement">"en_gb"</string>
 </resources>
diff --git a/core/res/res/values-mcc234-de/strings.xml b/core/res/res/values-mcc234-de/strings.xml
index bd391e1..2538b73 100644
--- a/core/res/res/values-mcc234-de/strings.xml
+++ b/core/res/res/values-mcc234-de/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="233769627858930762">"en_gb"</string>
+    <string name="locale_replacement">"en_gb"</string>
 </resources>
diff --git a/core/res/res/values-mcc234-el/strings.xml b/core/res/res/values-mcc234-el/strings.xml
index bd391e1..97bfe65 100644
--- a/core/res/res/values-mcc234-el/strings.xml
+++ b/core/res/res/values-mcc234-el/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="233769627858930762">"en_gb"</string>
+    <string name="locale_replacement">"el_GR"</string>
 </resources>
diff --git a/core/res/res/values-mcc234-es-rUS/strings.xml b/core/res/res/values-mcc234-es-rUS/strings.xml
index bd391e1..2538b73 100644
--- a/core/res/res/values-mcc234-es-rUS/strings.xml
+++ b/core/res/res/values-mcc234-es-rUS/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="233769627858930762">"en_gb"</string>
+    <string name="locale_replacement">"en_gb"</string>
 </resources>
diff --git a/core/res/res/values-mcc234-es/strings.xml b/core/res/res/values-mcc234-es/strings.xml
index bd391e1..2538b73 100644
--- a/core/res/res/values-mcc234-es/strings.xml
+++ b/core/res/res/values-mcc234-es/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="233769627858930762">"en_gb"</string>
+    <string name="locale_replacement">"en_gb"</string>
 </resources>
diff --git a/core/res/res/values-mcc234-fr/strings.xml b/core/res/res/values-mcc234-fr/strings.xml
index bd391e1..2538b73 100644
--- a/core/res/res/values-mcc234-fr/strings.xml
+++ b/core/res/res/values-mcc234-fr/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="233769627858930762">"en_gb"</string>
+    <string name="locale_replacement">"en_gb"</string>
 </resources>
diff --git a/core/res/res/values-mcc234-it/strings.xml b/core/res/res/values-mcc234-it/strings.xml
index bd391e1..2538b73 100644
--- a/core/res/res/values-mcc234-it/strings.xml
+++ b/core/res/res/values-mcc234-it/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="233769627858930762">"en_gb"</string>
+    <string name="locale_replacement">"en_gb"</string>
 </resources>
diff --git a/core/res/res/values-mcc234-ja/strings.xml b/core/res/res/values-mcc234-ja/strings.xml
index bd391e1..2538b73 100644
--- a/core/res/res/values-mcc234-ja/strings.xml
+++ b/core/res/res/values-mcc234-ja/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="233769627858930762">"en_gb"</string>
+    <string name="locale_replacement">"en_gb"</string>
 </resources>
diff --git a/core/res/res/values-mcc234-ko/strings.xml b/core/res/res/values-mcc234-ko/strings.xml
index bd391e1..2538b73 100644
--- a/core/res/res/values-mcc234-ko/strings.xml
+++ b/core/res/res/values-mcc234-ko/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="233769627858930762">"en_gb"</string>
+    <string name="locale_replacement">"en_gb"</string>
 </resources>
diff --git a/core/res/res/values-mcc234-nb/strings.xml b/core/res/res/values-mcc234-nb/strings.xml
deleted file mode 100644
index bd391e1..0000000
--- a/core/res/res/values-mcc234-nb/strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="233769627858930762">"en_gb"</string>
-</resources>
diff --git a/core/res/res/values-mcc234-nl/strings.xml b/core/res/res/values-mcc234-nl/strings.xml
index bd391e1..2538b73 100644
--- a/core/res/res/values-mcc234-nl/strings.xml
+++ b/core/res/res/values-mcc234-nl/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="233769627858930762">"en_gb"</string>
+    <string name="locale_replacement">"en_gb"</string>
 </resources>
diff --git a/core/res/res/values-mcc234-pl/strings.xml b/core/res/res/values-mcc234-pl/strings.xml
index bd391e1..2538b73 100644
--- a/core/res/res/values-mcc234-pl/strings.xml
+++ b/core/res/res/values-mcc234-pl/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="233769627858930762">"en_gb"</string>
+    <string name="locale_replacement">"en_gb"</string>
 </resources>
diff --git a/core/res/res/values-mcc234-pt-rPT/strings.xml b/core/res/res/values-mcc234-pt-rPT/strings.xml
index bd391e1..2538b73 100644
--- a/core/res/res/values-mcc234-pt-rPT/strings.xml
+++ b/core/res/res/values-mcc234-pt-rPT/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="233769627858930762">"en_gb"</string>
+    <string name="locale_replacement">"en_gb"</string>
 </resources>
diff --git a/core/res/res/values-mcc234-pt/strings.xml b/core/res/res/values-mcc234-pt/strings.xml
index bd391e1..2538b73 100644
--- a/core/res/res/values-mcc234-pt/strings.xml
+++ b/core/res/res/values-mcc234-pt/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="233769627858930762">"en_gb"</string>
+    <string name="locale_replacement">"en_gb"</string>
 </resources>
diff --git a/core/res/res/values-mcc234-ru/strings.xml b/core/res/res/values-mcc234-ru/strings.xml
index bd391e1..2538b73 100644
--- a/core/res/res/values-mcc234-ru/strings.xml
+++ b/core/res/res/values-mcc234-ru/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="233769627858930762">"en_gb"</string>
+    <string name="locale_replacement">"en_gb"</string>
 </resources>
diff --git a/core/res/res/values-mcc234-sv/strings.xml b/core/res/res/values-mcc234-sv/strings.xml
index bd391e1..2538b73 100644
--- a/core/res/res/values-mcc234-sv/strings.xml
+++ b/core/res/res/values-mcc234-sv/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="233769627858930762">"en_gb"</string>
+    <string name="locale_replacement">"en_gb"</string>
 </resources>
diff --git a/core/res/res/values-mcc234-tr/strings.xml b/core/res/res/values-mcc234-tr/strings.xml
index bd391e1..2538b73 100644
--- a/core/res/res/values-mcc234-tr/strings.xml
+++ b/core/res/res/values-mcc234-tr/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="233769627858930762">"en_gb"</string>
+    <string name="locale_replacement">"en_gb"</string>
 </resources>
diff --git a/core/res/res/values-mcc234-zh-rCN/strings.xml b/core/res/res/values-mcc234-zh-rCN/strings.xml
index bd391e1..2538b73 100644
--- a/core/res/res/values-mcc234-zh-rCN/strings.xml
+++ b/core/res/res/values-mcc234-zh-rCN/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="233769627858930762">"en_gb"</string>
+    <string name="locale_replacement">"en_gb"</string>
 </resources>
diff --git a/core/res/res/values-mcc234-zh-rTW/strings.xml b/core/res/res/values-mcc234-zh-rTW/strings.xml
index bd391e1..2538b73 100644
--- a/core/res/res/values-mcc234-zh-rTW/strings.xml
+++ b/core/res/res/values-mcc234-zh-rTW/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="233769627858930762">"en_gb"</string>
+    <string name="locale_replacement">"en_gb"</string>
 </resources>
diff --git a/core/res/res/values-mcc260-cs/strings.xml b/core/res/res/values-mcc260-cs/strings.xml
index 13ea1b2..1161f9a 100644
--- a/core/res/res/values-mcc260-cs/strings.xml
+++ b/core/res/res/values-mcc260-cs/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="6306793451973344945">"pl_pl"</string>
+    <string name="locale_replacement">"pl_pl"</string>
 </resources>
diff --git a/core/res/res/values-mcc260-da/strings.xml b/core/res/res/values-mcc260-da/strings.xml
index 13ea1b2..1161f9a 100644
--- a/core/res/res/values-mcc260-da/strings.xml
+++ b/core/res/res/values-mcc260-da/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="6306793451973344945">"pl_pl"</string>
+    <string name="locale_replacement">"pl_pl"</string>
 </resources>
diff --git a/core/res/res/values-mcc260-de/strings.xml b/core/res/res/values-mcc260-de/strings.xml
index 13ea1b2..1161f9a 100644
--- a/core/res/res/values-mcc260-de/strings.xml
+++ b/core/res/res/values-mcc260-de/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="6306793451973344945">"pl_pl"</string>
+    <string name="locale_replacement">"pl_pl"</string>
 </resources>
diff --git a/core/res/res/values-mcc260-el/strings.xml b/core/res/res/values-mcc260-el/strings.xml
index 13ea1b2..97bfe65 100644
--- a/core/res/res/values-mcc260-el/strings.xml
+++ b/core/res/res/values-mcc260-el/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="6306793451973344945">"pl_pl"</string>
+    <string name="locale_replacement">"el_GR"</string>
 </resources>
diff --git a/core/res/res/values-mcc260-es-rUS/strings.xml b/core/res/res/values-mcc260-es-rUS/strings.xml
index 13ea1b2..1161f9a 100644
--- a/core/res/res/values-mcc260-es-rUS/strings.xml
+++ b/core/res/res/values-mcc260-es-rUS/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="6306793451973344945">"pl_pl"</string>
+    <string name="locale_replacement">"pl_pl"</string>
 </resources>
diff --git a/core/res/res/values-mcc260-es/strings.xml b/core/res/res/values-mcc260-es/strings.xml
index 13ea1b2..1161f9a 100644
--- a/core/res/res/values-mcc260-es/strings.xml
+++ b/core/res/res/values-mcc260-es/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="6306793451973344945">"pl_pl"</string>
+    <string name="locale_replacement">"pl_pl"</string>
 </resources>
diff --git a/core/res/res/values-mcc260-fr/strings.xml b/core/res/res/values-mcc260-fr/strings.xml
index 13ea1b2..1161f9a 100644
--- a/core/res/res/values-mcc260-fr/strings.xml
+++ b/core/res/res/values-mcc260-fr/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="6306793451973344945">"pl_pl"</string>
+    <string name="locale_replacement">"pl_pl"</string>
 </resources>
diff --git a/core/res/res/values-mcc260-it/strings.xml b/core/res/res/values-mcc260-it/strings.xml
index 13ea1b2..1161f9a 100644
--- a/core/res/res/values-mcc260-it/strings.xml
+++ b/core/res/res/values-mcc260-it/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="6306793451973344945">"pl_pl"</string>
+    <string name="locale_replacement">"pl_pl"</string>
 </resources>
diff --git a/core/res/res/values-mcc260-ja/strings.xml b/core/res/res/values-mcc260-ja/strings.xml
index 13ea1b2..1161f9a 100644
--- a/core/res/res/values-mcc260-ja/strings.xml
+++ b/core/res/res/values-mcc260-ja/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="6306793451973344945">"pl_pl"</string>
+    <string name="locale_replacement">"pl_pl"</string>
 </resources>
diff --git a/core/res/res/values-mcc260-ko/strings.xml b/core/res/res/values-mcc260-ko/strings.xml
index 13ea1b2..1161f9a 100644
--- a/core/res/res/values-mcc260-ko/strings.xml
+++ b/core/res/res/values-mcc260-ko/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="6306793451973344945">"pl_pl"</string>
+    <string name="locale_replacement">"pl_pl"</string>
 </resources>
diff --git a/core/res/res/values-mcc260-nb/strings.xml b/core/res/res/values-mcc260-nb/strings.xml
deleted file mode 100644
index 13ea1b2..0000000
--- a/core/res/res/values-mcc260-nb/strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="6306793451973344945">"pl_pl"</string>
-</resources>
diff --git a/core/res/res/values-mcc260-nl/strings.xml b/core/res/res/values-mcc260-nl/strings.xml
index 13ea1b2..1161f9a 100644
--- a/core/res/res/values-mcc260-nl/strings.xml
+++ b/core/res/res/values-mcc260-nl/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="6306793451973344945">"pl_pl"</string>
+    <string name="locale_replacement">"pl_pl"</string>
 </resources>
diff --git a/core/res/res/values-mcc260-pl/strings.xml b/core/res/res/values-mcc260-pl/strings.xml
index 13ea1b2..1161f9a 100644
--- a/core/res/res/values-mcc260-pl/strings.xml
+++ b/core/res/res/values-mcc260-pl/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="6306793451973344945">"pl_pl"</string>
+    <string name="locale_replacement">"pl_pl"</string>
 </resources>
diff --git a/core/res/res/values-mcc260-pt-rPT/strings.xml b/core/res/res/values-mcc260-pt-rPT/strings.xml
index 13ea1b2..1161f9a 100644
--- a/core/res/res/values-mcc260-pt-rPT/strings.xml
+++ b/core/res/res/values-mcc260-pt-rPT/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="6306793451973344945">"pl_pl"</string>
+    <string name="locale_replacement">"pl_pl"</string>
 </resources>
diff --git a/core/res/res/values-mcc260-pt/strings.xml b/core/res/res/values-mcc260-pt/strings.xml
index 13ea1b2..1161f9a 100644
--- a/core/res/res/values-mcc260-pt/strings.xml
+++ b/core/res/res/values-mcc260-pt/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="6306793451973344945">"pl_pl"</string>
+    <string name="locale_replacement">"pl_pl"</string>
 </resources>
diff --git a/core/res/res/values-mcc260-ru/strings.xml b/core/res/res/values-mcc260-ru/strings.xml
index 13ea1b2..1161f9a 100644
--- a/core/res/res/values-mcc260-ru/strings.xml
+++ b/core/res/res/values-mcc260-ru/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="6306793451973344945">"pl_pl"</string>
+    <string name="locale_replacement">"pl_pl"</string>
 </resources>
diff --git a/core/res/res/values-mcc260-sv/strings.xml b/core/res/res/values-mcc260-sv/strings.xml
index 13ea1b2..1161f9a 100644
--- a/core/res/res/values-mcc260-sv/strings.xml
+++ b/core/res/res/values-mcc260-sv/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="6306793451973344945">"pl_pl"</string>
+    <string name="locale_replacement">"pl_pl"</string>
 </resources>
diff --git a/core/res/res/values-mcc260-tr/strings.xml b/core/res/res/values-mcc260-tr/strings.xml
index 13ea1b2..1161f9a 100644
--- a/core/res/res/values-mcc260-tr/strings.xml
+++ b/core/res/res/values-mcc260-tr/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="6306793451973344945">"pl_pl"</string>
+    <string name="locale_replacement">"pl_pl"</string>
 </resources>
diff --git a/core/res/res/values-mcc260-zh-rCN/strings.xml b/core/res/res/values-mcc260-zh-rCN/strings.xml
index 13ea1b2..1161f9a 100644
--- a/core/res/res/values-mcc260-zh-rCN/strings.xml
+++ b/core/res/res/values-mcc260-zh-rCN/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="6306793451973344945">"pl_pl"</string>
+    <string name="locale_replacement">"pl_pl"</string>
 </resources>
diff --git a/core/res/res/values-mcc260-zh-rTW/strings.xml b/core/res/res/values-mcc260-zh-rTW/strings.xml
index 13ea1b2..1161f9a 100644
--- a/core/res/res/values-mcc260-zh-rTW/strings.xml
+++ b/core/res/res/values-mcc260-zh-rTW/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="6306793451973344945">"pl_pl"</string>
+    <string name="locale_replacement">"pl_pl"</string>
 </resources>
diff --git a/core/res/res/values-mcc262-cs/strings.xml b/core/res/res/values-mcc262-cs/strings.xml
index a90e7cf..9505cf4 100644
--- a/core/res/res/values-mcc262-cs/strings.xml
+++ b/core/res/res/values-mcc262-cs/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="273407696421660814">"de_de"</string>
+    <string name="locale_replacement">"de_de"</string>
 </resources>
diff --git a/core/res/res/values-mcc262-da/strings.xml b/core/res/res/values-mcc262-da/strings.xml
index a90e7cf..9505cf4 100644
--- a/core/res/res/values-mcc262-da/strings.xml
+++ b/core/res/res/values-mcc262-da/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="273407696421660814">"de_de"</string>
+    <string name="locale_replacement">"de_de"</string>
 </resources>
diff --git a/core/res/res/values-mcc262-de/strings.xml b/core/res/res/values-mcc262-de/strings.xml
index a90e7cf..9505cf4 100644
--- a/core/res/res/values-mcc262-de/strings.xml
+++ b/core/res/res/values-mcc262-de/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="273407696421660814">"de_de"</string>
+    <string name="locale_replacement">"de_de"</string>
 </resources>
diff --git a/core/res/res/values-mcc262-el/strings.xml b/core/res/res/values-mcc262-el/strings.xml
index a90e7cf..97bfe65 100644
--- a/core/res/res/values-mcc262-el/strings.xml
+++ b/core/res/res/values-mcc262-el/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="273407696421660814">"de_de"</string>
+    <string name="locale_replacement">"el_GR"</string>
 </resources>
diff --git a/core/res/res/values-mcc262-es-rUS/strings.xml b/core/res/res/values-mcc262-es-rUS/strings.xml
index a90e7cf..9505cf4 100644
--- a/core/res/res/values-mcc262-es-rUS/strings.xml
+++ b/core/res/res/values-mcc262-es-rUS/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="273407696421660814">"de_de"</string>
+    <string name="locale_replacement">"de_de"</string>
 </resources>
diff --git a/core/res/res/values-mcc262-es/strings.xml b/core/res/res/values-mcc262-es/strings.xml
index a90e7cf..9505cf4 100644
--- a/core/res/res/values-mcc262-es/strings.xml
+++ b/core/res/res/values-mcc262-es/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="273407696421660814">"de_de"</string>
+    <string name="locale_replacement">"de_de"</string>
 </resources>
diff --git a/core/res/res/values-mcc262-fr/strings.xml b/core/res/res/values-mcc262-fr/strings.xml
index a90e7cf..9505cf4 100644
--- a/core/res/res/values-mcc262-fr/strings.xml
+++ b/core/res/res/values-mcc262-fr/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="273407696421660814">"de_de"</string>
+    <string name="locale_replacement">"de_de"</string>
 </resources>
diff --git a/core/res/res/values-mcc262-it/strings.xml b/core/res/res/values-mcc262-it/strings.xml
index a90e7cf..9505cf4 100644
--- a/core/res/res/values-mcc262-it/strings.xml
+++ b/core/res/res/values-mcc262-it/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="273407696421660814">"de_de"</string>
+    <string name="locale_replacement">"de_de"</string>
 </resources>
diff --git a/core/res/res/values-mcc262-ja/strings.xml b/core/res/res/values-mcc262-ja/strings.xml
index a90e7cf..9505cf4 100644
--- a/core/res/res/values-mcc262-ja/strings.xml
+++ b/core/res/res/values-mcc262-ja/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="273407696421660814">"de_de"</string>
+    <string name="locale_replacement">"de_de"</string>
 </resources>
diff --git a/core/res/res/values-mcc262-ko/strings.xml b/core/res/res/values-mcc262-ko/strings.xml
index a90e7cf..9505cf4 100644
--- a/core/res/res/values-mcc262-ko/strings.xml
+++ b/core/res/res/values-mcc262-ko/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="273407696421660814">"de_de"</string>
+    <string name="locale_replacement">"de_de"</string>
 </resources>
diff --git a/core/res/res/values-mcc262-nb/strings.xml b/core/res/res/values-mcc262-nb/strings.xml
deleted file mode 100644
index a90e7cf..0000000
--- a/core/res/res/values-mcc262-nb/strings.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright (C) 2009 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<resources xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="273407696421660814">"de_de"</string>
-</resources>
diff --git a/core/res/res/values-mcc262-nl/strings.xml b/core/res/res/values-mcc262-nl/strings.xml
index a90e7cf..9505cf4 100644
--- a/core/res/res/values-mcc262-nl/strings.xml
+++ b/core/res/res/values-mcc262-nl/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="273407696421660814">"de_de"</string>
+    <string name="locale_replacement">"de_de"</string>
 </resources>
diff --git a/core/res/res/values-mcc262-pl/strings.xml b/core/res/res/values-mcc262-pl/strings.xml
index a90e7cf..9505cf4 100644
--- a/core/res/res/values-mcc262-pl/strings.xml
+++ b/core/res/res/values-mcc262-pl/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="273407696421660814">"de_de"</string>
+    <string name="locale_replacement">"de_de"</string>
 </resources>
diff --git a/core/res/res/values-mcc262-pt-rPT/strings.xml b/core/res/res/values-mcc262-pt-rPT/strings.xml
index a90e7cf..9505cf4 100644
--- a/core/res/res/values-mcc262-pt-rPT/strings.xml
+++ b/core/res/res/values-mcc262-pt-rPT/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="273407696421660814">"de_de"</string>
+    <string name="locale_replacement">"de_de"</string>
 </resources>
diff --git a/core/res/res/values-mcc262-pt/strings.xml b/core/res/res/values-mcc262-pt/strings.xml
index a90e7cf..9505cf4 100644
--- a/core/res/res/values-mcc262-pt/strings.xml
+++ b/core/res/res/values-mcc262-pt/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="273407696421660814">"de_de"</string>
+    <string name="locale_replacement">"de_de"</string>
 </resources>
diff --git a/core/res/res/values-mcc262-ru/strings.xml b/core/res/res/values-mcc262-ru/strings.xml
index a90e7cf..9505cf4 100644
--- a/core/res/res/values-mcc262-ru/strings.xml
+++ b/core/res/res/values-mcc262-ru/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="273407696421660814">"de_de"</string>
+    <string name="locale_replacement">"de_de"</string>
 </resources>
diff --git a/core/res/res/values-mcc262-sv/strings.xml b/core/res/res/values-mcc262-sv/strings.xml
index a90e7cf..9505cf4 100644
--- a/core/res/res/values-mcc262-sv/strings.xml
+++ b/core/res/res/values-mcc262-sv/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="273407696421660814">"de_de"</string>
+    <string name="locale_replacement">"de_de"</string>
 </resources>
diff --git a/core/res/res/values-mcc262-tr/strings.xml b/core/res/res/values-mcc262-tr/strings.xml
index a90e7cf..9505cf4 100644
--- a/core/res/res/values-mcc262-tr/strings.xml
+++ b/core/res/res/values-mcc262-tr/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="273407696421660814">"de_de"</string>
+    <string name="locale_replacement">"de_de"</string>
 </resources>
diff --git a/core/res/res/values-mcc262-zh-rCN/strings.xml b/core/res/res/values-mcc262-zh-rCN/strings.xml
index a90e7cf..9505cf4 100644
--- a/core/res/res/values-mcc262-zh-rCN/strings.xml
+++ b/core/res/res/values-mcc262-zh-rCN/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="273407696421660814">"de_de"</string>
+    <string name="locale_replacement">"de_de"</string>
 </resources>
diff --git a/core/res/res/values-mcc262-zh-rTW/strings.xml b/core/res/res/values-mcc262-zh-rTW/strings.xml
index a90e7cf..9505cf4 100644
--- a/core/res/res/values-mcc262-zh-rTW/strings.xml
+++ b/core/res/res/values-mcc262-zh-rTW/strings.xml
@@ -15,5 +15,5 @@
 -->
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="locale_replacement" msgid="273407696421660814">"de_de"</string>
+    <string name="locale_replacement">"de_de"</string>
 </resources>
diff --git a/docs/html/guide/appendix/app-intents.jd b/docs/html/guide/appendix/app-intents.jd
index 102183b..110196c 100644
--- a/docs/html/guide/appendix/app-intents.jd
+++ b/docs/html/guide/appendix/app-intents.jd
@@ -97,7 +97,7 @@
        the fisheye lens effect that would be present if a 90 degree horizontal                             
        FOV was used in portrait mode.</td></tr>
        <tr><td>mapZoom</td><td>The map zoom of the map location associated with this panorama. This value is passed on to the
-       Maps activity when the Street View "Go to Maps" menu item is chosen. It corresponds to the <em>z</em> paramaeter in
+       Maps activity when the Street View "Go to Maps" menu item is chosen. It corresponds to the <em>z</em> parameter in
        the geo: intent.</td></tr>
        </table>
           </td>
diff --git a/docs/html/guide/appendix/faq/commontasks.jd b/docs/html/guide/appendix/faq/commontasks.jd
index e88a867..c4fc52a 100644
--- a/docs/html/guide/appendix/faq/commontasks.jd
+++ b/docs/html/guide/appendix/faq/commontasks.jd
@@ -328,7 +328,7 @@
 <p>The listening classes, called broadcast receivers, extend {@link android.content.BroadcastReceiver
     BroadcastReceiver}. If you want Android to instantiate the object whenever an appropriate
     intent notification is sent, define the receiver with a <code>&lt;receiver&gt;</code> element
-    in the AndroidManifext.xml file. If the caller is expected to instantiate the
+    in the AndroidManifest.xml file. If the caller is expected to instantiate the
     object in preparation to receive a message, this is not required. The receiver
     will get a call to their {@link android.content.BroadcastReceiver#onReceive(android.content.Context,android.content.Intent)
     BroadcastReceiver.onReceive()} method. A receiver can define an <code>&lt;intent-filter&gt;</code> tag
@@ -468,7 +468,7 @@
 };
 
 
-private void IncomingMotherInlawCall(Connection c) {
+private void IncomingMotherInLawCall(Connection c) {
     String Text;
     
     // &quot;Answer&quot; callback.
@@ -486,7 +486,7 @@
     new AlertDialog.Builder(this)
       .setMessage("Phyllis is calling")
       .setPositiveButton("Answer", acceptMsg)
-      .setOnCanceListener(new OnCancelListener() {
+      .setOnCancelListener(new OnCancelListener() {
         public void onCancel(DialogInterface dialog) {
           rejectMsg.sendToTarget();
         }});
diff --git a/docs/html/guide/appendix/g-app-intents.jd b/docs/html/guide/appendix/g-app-intents.jd
index d4f97c8..2846859 100644
--- a/docs/html/guide/appendix/g-app-intents.jd
+++ b/docs/html/guide/appendix/g-app-intents.jd
@@ -103,7 +103,7 @@
 effect that would be present if a 90 degree horizontal FOV was used in portrait
 mode.</td></tr>
        <tr><td><em>mapZoom</em></td><td>The map zoom of the map location associated with this panorama. This value is passed on to the
-       Maps activity when the Street View "Go to Maps" menu item is chosen. It corresponds to the <em>z</em> paramaeter in
+       Maps activity when the Street View "Go to Maps" menu item is chosen. It corresponds to the <em>z</em> parameter in
        the geo: intent.</td></tr>
        </table>
           </td>
diff --git a/docs/html/guide/appendix/glossary.jd b/docs/html/guide/appendix/glossary.jd
index ef81631..97669ba 100644
--- a/docs/html/guide/appendix/glossary.jd
+++ b/docs/html/guide/appendix/glossary.jd
@@ -167,7 +167,7 @@
     <dd>An XML file that each application must define, to describe the
     application's package name, version, components (activities, intent
     filters, services), imported libraries, and describes the various
-    activies, and so on. See <a
+    activities, and so on. See <a
     href="{@docRoot}guide/topics/manifest/manifest-intro.html">The
     AndroidManifest.xml File</a> for complete information.</dd>
 
diff --git a/docs/html/guide/developing/eclipse-adt.jd b/docs/html/guide/developing/eclipse-adt.jd
index 667aa9f..c01745e 100644
--- a/docs/html/guide/developing/eclipse-adt.jd
+++ b/docs/html/guide/developing/eclipse-adt.jd
@@ -27,7 +27,7 @@
 <ul>
   <li>It gives you access to other Android development tools from inside the Eclipse IDE. For 
 example, ADT lets you access the many capabilities of the DDMS tool: take screenshots, manage 
-port-forwarding, set breakpoints, and view thread and process informationd irectly from Eclipse.</li>
+port-forwarding, set breakpoints, and view thread and process information directly from Eclipse.</li>
   <li>It provides a New Project Wizard, which helps you quickly create and set up all of the 
 basic files you'll need for a new Android application.</li>
   <li>It automates and simplifies the process of building your Android application.</li>
@@ -145,7 +145,7 @@
 <p>If you will be running your applications only on actual device hardware, you do not 
 need an AVD &mdash; see 
 <a href="{@docRoot}guide/developing/device.html">Developing On a Device</a> for information
-on running your applicaiton.</p>
+on running your application.</p>
 
 <h3 id="CreatingAnAvd">Creating an AVD</h3>
 
diff --git a/docs/html/guide/developing/other-ide.jd b/docs/html/guide/developing/other-ide.jd
index 2080873..d043a7d 100644
--- a/docs/html/guide/developing/other-ide.jd
+++ b/docs/html/guide/developing/other-ide.jd
@@ -239,7 +239,7 @@
 <p class="note"><strong>Note:</strong> When installing JDK on Windows, the default is to install 
 in the "Program Files" directory. This location will cause <code>ant</code> to fail, because of 
 the space. To fix the problem, you can specify the JAVA_HOME variable like this: 
-<code>set JAVA_HOME=c:\Prora~1\Java\<jdkdir></code>. The easiest solution, however, is to 
+<code>set JAVA_HOME=c:\Progra~1\Java\<jdkdir></code>. The easiest solution, however, is to 
 install JDK in a non-space directory, for example: <code>c:\java\jdk1.6.0_02</code>.</p>
 
 
diff --git a/docs/html/guide/developing/tools/adb.jd b/docs/html/guide/developing/tools/adb.jd
index e8c726f..2970e61 100644
--- a/docs/html/guide/developing/tools/adb.jd
+++ b/docs/html/guide/developing/tools/adb.jd
@@ -94,7 +94,7 @@
 
 <p>Once the server has set up connections to all emulator instances, you can use adb commands to control and access those instances. Because the server manages connections to emulator/device instances and handles commands from multiple adb clients, you can control any emulator/device instance from any client (or from a script).</p>
 
-<p>The sections below describe the commands that you can use to access adb capabilities and manage the state of an emulator/device. Note that if you are developing Android applications in Eclipse and have installed the ADT plugin, you do not need to access adb from the command line. The ADT plugin provides a trasparent integration of adb into the Eclipse IDE. However, you can still use adb directly as necessary, such as for debugging.</p>
+<p>The sections below describe the commands that you can use to access adb capabilities and manage the state of an emulator/device. Note that if you are developing Android applications in Eclipse and have installed the ADT plugin, you do not need to access adb from the command line. The ADT plugin provides a transparent integration of adb into the Eclipse IDE. However, you can still use adb directly as necessary, such as for debugging.</p>
 
 <a name="issuingcommands"></a>
 
diff --git a/docs/html/guide/developing/tools/adt.jd b/docs/html/guide/developing/tools/adt.jd
index f28b24c..219be67 100644
--- a/docs/html/guide/developing/tools/adt.jd
+++ b/docs/html/guide/developing/tools/adt.jd
@@ -4,7 +4,7 @@
 <p>The Android Development Tools (ADT) plugin adds powerful extensions to the Eclipse integrated development environment. It allows you to create and debug your Android applications easier and faster. If you use Eclipse, the ADT plugin gives you an incredible boost in developing Android applications:</p>
 
 <ul>
-  <li>It gives you access to other Android development tools from inside the Eclipse IDE. For example, ADT lets you access the many capabilities of the DDMS tool: take screenshots, manage port-forwarding, set breakpoints, and view thread and process informationd irectly from Eclipse.</li>
+  <li>It gives you access to other Android development tools from inside the Eclipse IDE. For example, ADT lets you access the many capabilities of the DDMS tool: take screenshots, manage port-forwarding, set breakpoints, and view thread and process information directly from Eclipse.</li>
   <li>It provides a New Project Wizard, which helps you quickly create and set up all of the basic files you'll need for a new Android application.</li>
   <li>It automates and simplifies the process of building your Android application.</li>
   <li>It provides an Android code editor that helps you write valid XML for your Android manifest and resource files.</li>
@@ -102,7 +102,7 @@
 
 <p>Note that the "Android Editors" feature of ADT requires several optional 
 Eclipse components (for example, WST). If you encounter an error when 
-installing ADT, your Eclipse installion might not include those components. 
+installing ADT, your Eclipse installation might not include those components. 
 For information about how to quickly add the necessary components to your 
 Eclipse installation, see the troubleshooting topic 
 <a href="{@docRoot}guide/appendix/faq/troubleshooting.html#installeclipsecomponents">ADT Installation Error: "requires plug-in org.eclipse.wst.sse.ui"</a>.</p>
diff --git a/docs/html/guide/developing/tools/draw9patch.jd b/docs/html/guide/developing/tools/draw9patch.jd
index f25fabb..9607ae7 100644
--- a/docs/html/guide/developing/tools/draw9patch.jd
+++ b/docs/html/guide/developing/tools/draw9patch.jd
@@ -5,7 +5,7 @@
    {@link android.graphics.NinePatch} graphic using a WYSIWYG editor.</p>
 <p>For an introduction to Nine-patch graphics and how they work, please read 
 the section on Nine-patch in the 
-<a href="{@docRoot}guide/topics/resources/available-resources.html#ninepatch">Ninepatch Images</a> topic.</p>
+<a href="{@docRoot}guide/topics/resources/available-resources.html#ninepatch">Nine-patch Images</a> topic.</p>
 
 <div class="sidebox" style="width:auto"><br/>
 <img src="{@docRoot}images/draw9patch-norm.png" alt="" height="300" width="341" />
diff --git a/docs/html/guide/developing/tools/emulator.jd b/docs/html/guide/developing/tools/emulator.jd
index a9b6914..43f9271 100644
--- a/docs/html/guide/developing/tools/emulator.jd
+++ b/docs/html/guide/developing/tools/emulator.jd
@@ -1338,7 +1338,7 @@
 
 <p>You can use the <code>power</code> command to control the simulated power state of the emulator instance.The usage for the command is: </p>
 
-<pre>power &lt;display|ac|status|present|health|capactiy&gt;</pre>
+<pre>power &lt;display|ac|status|present|health|capacity&gt;</pre>
 
 <p>The <code>event</code> command supports the subcommands listed in the table below. </p>
 
@@ -1393,7 +1393,7 @@
 <a name="netdelay"></a>
 <h3>Network Delay Emulation</h3>
 
-<p>The emulator lets you simulate various network latency levels, so that you can test your applicaton in an environment more typical of the actual conditions in which it will run. You can set a latency level or range at emulator startup or you can use the console to change the latency dynamically, while the application is running in the emulator. </p>
+<p>The emulator lets you simulate various network latency levels, so that you can test your application in an environment more typical of the actual conditions in which it will run. You can set a latency level or range at emulator startup or you can use the console to change the latency dynamically, while the application is running in the emulator. </p>
 <p>To set latency at emulator startup, use the  <code>-netdelay</code> emulator option with a supported <code>&lt;delay&gt;</code> value, as listed in the table below. Here are some examples:</p>
 <pre>emulator -netdelay gprs
 emulator -netdelay 40 100</pre>
diff --git a/docs/html/guide/guide_toc.cs b/docs/html/guide/guide_toc.cs
index 5215202..48c537d 100644
--- a/docs/html/guide/guide_toc.cs
+++ b/docs/html/guide/guide_toc.cs
@@ -142,7 +142,6 @@
           <li><a href="<?cs var:toroot ?>guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a></li>
           <li><a href="<?cs var:toroot ?>guide/topics/manifest/manifest-element.html">&lt;manifest&gt;</a></li>
           <li><a href="<?cs var:toroot ?>guide/topics/manifest/meta-data-element.html">&lt;meta-data&gt;</a></li>
-          <li><a href="<?cs var:toroot ?>guide/topics/manifest/path-permission-element.html">&lt;path-permission&gt;</a></li>
           <li><a href="<?cs var:toroot ?>guide/topics/manifest/permission-element.html">&lt;permission&gt;</a></li>
           <li><a href="<?cs var:toroot ?>guide/topics/manifest/permission-group-element.html">&lt;permission-group&gt;</a></li>
           <li><a href="<?cs var:toroot ?>guide/topics/manifest/permission-tree-element.html">&lt;permission-tree&gt;</a></li>
diff --git a/docs/html/guide/practices/design/responsiveness.jd b/docs/html/guide/practices/design/responsiveness.jd
index ecd743d..1d5a235 100644
--- a/docs/html/guide/practices/design/responsiveness.jd
+++ b/docs/html/guide/practices/design/responsiveness.jd
@@ -80,7 +80,7 @@
 event timeout. These same practices should be followed for any other threads
 that display UI, as they are also subject to the same timeouts.</p>
 
-<p>The specific constraint on IntentReciever execution time emphasizes what
+<p>The specific constraint on IntentReceiver execution time emphasizes what
 they were meant to do: small, discrete amounts of work in the background such
 as saving a setting or registering a Notification. So as with other methods
 called in the main thread, applications should avoid potentially long-running
diff --git a/docs/html/guide/practices/ui_guidelines/activity_task_design.jd b/docs/html/guide/practices/ui_guidelines/activity_task_design.jd
index e2fc89c..6cd2199 100644
--- a/docs/html/guide/practices/ui_guidelines/activity_task_design.jd
+++ b/docs/html/guide/practices/ui_guidelines/activity_task_design.jd
@@ -469,7 +469,7 @@
   re-use activities in other applications, and how your activities might
   be re-used by other applications. If you add an activity with the same
   <a href=#intents title="intent filter">intent filter</a> as an
-  exisiting activity, then the system presents the user with a choice
+  existing activity, then the system presents the user with a choice
   between the activities.
 </p>
 
@@ -879,7 +879,7 @@
 <p>
   You can either test that an activity matches the intent, which you can do
   before starting the activity, or catch an exception if starting the
-  activity fails. Both approaches are descibed in the blog posting
+  activity fails. Both approaches are described in the blog posting
   <a href="http://android-developers.blogspot.com/2009/01/can-i-use-this-intent.html">Can
   I use this Intent?</a>.
 </p>
@@ -938,7 +938,7 @@
         the menus, the system compares the "Share" request (an Intent
         object) to available activities (by looking at their intent
         filters) and displays choices to share. In this case, it
-        matches Email, Gmail, Messaging and Picassa. If your activity
+        matches Email, Gmail, Messaging and Picasa. If your activity
         can send a picture or upload it to a website, all it needs to
         do is make itself available for sharing (by setting its intent
         filter).
@@ -978,7 +978,7 @@
       <li>
         <b>Launch your activity <em>only</em> from within another
         application</b> - The previous cases of sharing by way of
-        Email, Gmail, Messaging and Picassa (from within Gallery) are
+        Email, Gmail, Messaging and Picasa (from within Gallery) are
         all activities that can also be started from icons in the
         application launcher at Home. In contrast, the activities for
         cropping a picture and attaching a file cannot be started from
diff --git a/docs/html/guide/practices/ui_guidelines/widget_design.jd b/docs/html/guide/practices/ui_guidelines/widget_design.jd
index 514b315..fc62fe6 100644
--- a/docs/html/guide/practices/ui_guidelines/widget_design.jd
+++ b/docs/html/guide/practices/ui_guidelines/widget_design.jd
@@ -9,7 +9,7 @@
 <ul>
 <li>Widgets have six standard sizes on the Home screen</li>
 <li>Widgets have standards for size, frames, shadows, and file format, which you can copy</li>
-<li>A few tricks make it easier to design widgets that fit graphically on the Home screeen</li>
+<li>A few tricks make it easier to design widgets that fit graphically on the Home screen</li>
 </ul>
 
 <h2>In this document</h2>
diff --git a/docs/html/guide/publishing/versioning.jd b/docs/html/guide/publishing/versioning.jd
index 7260eae..44235b6 100644
--- a/docs/html/guide/publishing/versioning.jd
+++ b/docs/html/guide/publishing/versioning.jd
@@ -67,7 +67,7 @@
 <li><code>android:versionCode</code> &mdash; An integer value that represents
 the version of the application code, relative to other versions. 
 
-<p>The value is an integer so that other applications can programatically
+<p>The value is an integer so that other applications can programmatically
 evaluate it, for example to check an upgrade or downgrade relationship. You can
 set the value to any integer you want, however you should make sure that each
 successive release of your application uses a greater value. The system does not
@@ -78,7 +78,7 @@
 versionCode set to 1, then monotonically increase the value with each release,
 regardless whether the release constitutes a major or minor release. This means
 that the <code>android:versionCode</code> value does not necessarily have a
-strong resemblence to the application release version that is visible to the
+strong resemblance to the application release version that is visible to the
 user (see <code>android:versionName</code>, below). Applications and publishing
 services should not display this version value to users.</p>
 </li>
diff --git a/docs/html/guide/topics/appwidgets/index.jd b/docs/html/guide/topics/appwidgets/index.jd
index fc0061d..ef0080a 100644
--- a/docs/html/guide/topics/appwidgets/index.jd
+++ b/docs/html/guide/topics/appwidgets/index.jd
@@ -382,7 +382,7 @@
 
 <p>Also, the Activity must be declared in the AppWidgetProviderInfo XML file, with the 
 <code>android:configure</code> attribute (see <a href="#MetaData">Adding 
-the AppWidgetProvierInfo Metadata</a> above). For example, the configuration Activity
+the AppWidgetProviderInfo Metadata</a> above). For example, the configuration Activity
 can be declared like this:</p>
 
 <pre>
diff --git a/docs/html/guide/topics/fundamentals.jd b/docs/html/guide/topics/fundamentals.jd
index 640e44b..c10af8e 100644
--- a/docs/html/guide/topics/fundamentals.jd
+++ b/docs/html/guide/topics/fundamentals.jd
@@ -262,7 +262,7 @@
 </p>
 
 <p>
-There are separate methods for activiating each type of component: 
+There are separate methods for activating each type of component: 
 </p>
 
 <ul>
diff --git a/docs/html/guide/topics/graphics/2d-graphics.jd b/docs/html/guide/topics/graphics/2d-graphics.jd
index af584a2..051427b 100644
--- a/docs/html/guide/topics/graphics/2d-graphics.jd
+++ b/docs/html/guide/topics/graphics/2d-graphics.jd
@@ -43,7 +43,7 @@
 {@link android.graphics.drawable.PictureDrawable}, {@link android.graphics.drawable.LayerDrawable}, and several more.
 Of course, you can also extend these to define your own custom Drawable objects that behave in unique ways.</p>
 
-<p>There are three ways to define and instantiate a Drawable: using an image saved in your project resouces;
+<p>There are three ways to define and instantiate a Drawable: using an image saved in your project resources;
 using an XML file that defines the Drawable properties; or using the normal class constructors. Below, we'll discuss
 each the first two techniques (using constructors is nothing new for an experienced developer).</p>
 
@@ -126,7 +126,7 @@
 <a href="{@docRoot}guide/topics/ui/index.html">User Interface</a>. Hence, you understand the power
 and flexibility inherent in defining objects in XML. This philosophy caries over from Views to Drawables.
 If there is a Drawable object that you'd like to create, which is not initially dependent on variables defined by
-your applicaton code or user interaction, then defining the Drawable in XML is a good option.
+your application code or user interaction, then defining the Drawable in XML is a good option.
 Even if you expect your Drawable to change its properties during the user's experience with your application, 
 you should consider defining the object in XML, as you can always modify properties once it is instantiated.</p>
 
@@ -206,7 +206,7 @@
 It's then given a color and the bounds of the shape are set. If you do not set the bounds, then the
 shape will not be drawn, whereas if you don't set the color, it will default to black.</p>
 <p>With the custom View defined, it can be drawn any way you like. With the sample above, we can
-draw the shape progammatically in an Activity:</p>
+draw the shape programmatically in an Activity:</p>
 <pre>
 CustomDrawableView mCustomDrawableView;
 
@@ -248,7 +248,7 @@
 <h2 id="nine-patch">NinePatchDrawable</h2>
 
 <p>A {@link android.graphics.drawable.NinePatchDrawable} graphic is a stretchable bitmap image, which Android
-will automatically resize to accomodate the contents of the View in which you have placed it as the background. 
+will automatically resize to accommodate the contents of the View in which you have placed it as the background. 
 An example use of a NinePatch is the backgrounds used by standard Android buttons &mdash;
 buttons must stretch to accommodate strings of various lengths. A NinePatch drawable is a standard PNG 
 image that includes an extra 1-pixel-wide border. It must be saved with the extension <code>.9.png</code>,
@@ -271,7 +271,7 @@
     define this drawable area.
 </p>
 <p>To clarify the difference between the different lines, the left and top lines define 
-which pixels of the image are allowed to be replicated in order to strech the image.
+which pixels of the image are allowed to be replicated in order to stretch the image.
 The bottom and right lines define the relative area within the image that the contents
 of the View are allowed to lie within.</p>
 <p>
@@ -281,7 +281,7 @@
 
 <p>This NinePatch defines one stretchable area with the left and top lines
 and the drawable area with the bottom and right lines. In the top image, the dotted grey
-lines identify the regions of the image that will be replicated in order to strech the image. The pink
+lines identify the regions of the image that will be replicated in order to stretch the image. The pink
 rectangle in the bottom image identifies the region in which the contents of the View are allowed.
 If the contents don't fit in this region, then the image will be stretched so that they do.
 </p>
@@ -333,7 +333,7 @@
 If it has a background image, the background image will be transformed along with the text.
 The {@link android.view.animation animation package} provides all the classes used in a tween animation.</p>
 
-<p>A sequence of animation instructions defines the twen animation, defined by either XML or Android code.
+<p>A sequence of animation instructions defines the tween animation, defined by either XML or Android code.
 Like defining a layout, an XML file is recommended because it's more readable, reusable, and swappable 
 than hard-coding the animation. In the example below, we use XML. (To learn more about defining an animation 
 in your application code, instead of XML, refer to the 
@@ -428,7 +428,7 @@
 in the <a href="{@docRoot}guide/topics/resources/available-resources.html#animation">Available Resources</a>.</p>
 
 <p class="note"><strong>Note:</strong> Regardless of how your animation may move or resize, the bounds of the 
-View that holds your animation will not automatically adjust to accomodate it. Even so, the animation will still
+View that holds your animation will not automatically adjust to accommodate it. Even so, the animation will still
 be drawn beyond the bounds of its View and will not be clipped. However, clipping <em>will occur</em>
 if the animation exceeds the bounds of the parent View.</p>
 
diff --git a/docs/html/guide/topics/graphics/index.jd b/docs/html/guide/topics/graphics/index.jd
index bc2a8bf..e1158be 100644
--- a/docs/html/guide/topics/graphics/index.jd
+++ b/docs/html/guide/topics/graphics/index.jd
@@ -112,7 +112,7 @@
 Other classes that you might use also have <code>draw()</code> methods. For example, you'll probably
 have some {@link android.graphics.drawable.Drawable} objects that you want to put on the Canvas. Drawable
 has its own <code>{@link android.graphics.drawable.Drawable#draw(Canvas) draw()}</code> method 
-that takes your Canvas as an arguement.</p>
+that takes your Canvas as an argument.</p>
 
 
 <h3 id="on-view">On a View</h3>
@@ -124,7 +124,7 @@
 The most convenient aspect of doing so is that the Android framework will
 provide you with a pre-defined Canvas to which you will place your drawing calls.</p>
 
-<p>To start, extend the {@link android.view.View} class (or descendent thereof) and define
+<p>To start, extend the {@link android.view.View} class (or descendant thereof) and define
 the <code>{@link android.view.View#onDraw(Canvas) onDraw()}</code> callback method. This method will be called by the Android 
 framework to request that your View draw itself. This is where you will perform all your calls
 to draw through the {@link android.graphics.Canvas}, which is passed to you through the <code>onDraw()</code> callback.</p>
@@ -190,7 +190,7 @@
 you will see traces of the drawings you previously performed.</p>
 
 
-<p>For a sample application, see the Lunar Landar game, in the SDK samples folder:
+<p>For a sample application, see the Lunar Lander game, in the SDK samples folder:
 <code>&lt;your-sdk-directory>/samples/LunarLander/</code>. Or,
 browse the source in the <a href="{@docRoot}guide/samples/index.html">Sample Code</a> section.</p>
 
diff --git a/docs/html/guide/topics/manifest/activity-element.jd b/docs/html/guide/topics/manifest/activity-element.jd
index 83237c6..c22d3e1 100644
--- a/docs/html/guide/topics/manifest/activity-element.jd
+++ b/docs/html/guide/topics/manifest/activity-element.jd
@@ -24,7 +24,7 @@
           android:<a href="#proc">process</a>="<i>string</i>"
           android:<a href="#screen">screenOrientation</a>=["unspecified" | "user" | "behind" |
                                      "landscape" | "portrait" | 
-                                     "sensor" | "nonsensor"]
+                                     "sensor" | "nosensor"]
           android:<a href="#state">stateNotNeeded</a>=["true" | "false"]
           android:<a href="#aff">taskAffinity</a>="<i>string</i>"
           android:<a href="#theme">theme</a>="<i>resource or theme</i>" 
@@ -687,7 +687,7 @@
        keyboard.  Rather, the contents of the window are automatically 
        panned so that the current focus is never obscured by the keyboard
        and users can always see what they are typing.  This is generally less 
-       desireable than resizing, because the user may need to close the soft
+       desirable than resizing, because the user may need to close the soft
        keyboard to get at and interact with obscured parts of the window.</td>
 </tr>
 </table>
diff --git a/docs/html/guide/topics/manifest/data-element.jd b/docs/html/guide/topics/manifest/data-element.jd
index b48c5e0..b77fd05 100644
--- a/docs/html/guide/topics/manifest/data-element.jd
+++ b/docs/html/guide/topics/manifest/data-element.jd
@@ -28,7 +28,7 @@
 These attributes are optional, but also mutually dependent: 
 If a <code><a href="{@docRoot}guide/topics/manifest/data-element.html#scheme">scheme</a></code> is not specified for the 
 intent filter, all the other URI attributes are ignored.  If a 
-<code><a href="{@docRoot}guide/topics/manifest/data-element.html#host">host</a></code> is not specified for the filer, 
+<code><a href="{@docRoot}guide/topics/manifest/data-element.html#host">host</a></code> is not specified for the filter, 
 the {@code port} attribute and all the path attributes are ignored.
 </p>
 
diff --git a/docs/html/guide/topics/manifest/manifest-intro.jd b/docs/html/guide/topics/manifest/manifest-intro.jd
index 89171c1..9e1b18d 100644
--- a/docs/html/guide/topics/manifest/manifest-intro.jd
+++ b/docs/html/guide/topics/manifest/manifest-intro.jd
@@ -112,7 +112,6 @@
 
         <a href="{@docRoot}guide/topics/manifest/provider-element.html">&lt;provider&gt;</a>
             <a href="{@docRoot}guide/topics/manifest/grant-uri-permission-element.html">&lt;grant-uri-permission /&gt;</a>
-            <a href="{@docRoot}guide/topics/manifest/path-permission-element.html">&lt;path-permission /&gt;</a>
             <a href="{@docRoot}guide/topics/manifest/meta-data-element.html">&lt;meta-data /&gt;</a>
         <a href="{@docRoot}guide/topics/manifest/provider-element.html">&lt;/provider&gt;</a>
 
@@ -141,7 +140,6 @@
 <br/><code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a></code>
 <br/><code><a href="{@docRoot}guide/topics/manifest/manifest-element.html">&lt;manifest&gt;</a></code>
 <br/><code><a href="{@docRoot}guide/topics/manifest/meta-data-element.html">&lt;meta-data&gt;</a></code>
-<br/><code><a href="{@docRoot}guide/topics/manifest/path-permission-element.html">&lt;path-permission /&gt;</a></code>
 <br/><code><a href="{@docRoot}guide/topics/manifest/permission-element.html">&lt;permission&gt;</a></code>
 <br/><code><a href="{@docRoot}guide/topics/manifest/permission-group-element.html">&lt;permission-group&gt;</a></code>
 <br/><code><a href="{@docRoot}guide/topics/manifest/permission-tree-element.html">&lt;permission-tree&gt;</a></code>
diff --git a/docs/html/guide/topics/manifest/path-permission-element.jd b/docs/html/guide/topics/manifest/path-permission-element.jd
deleted file mode 100644
index 5c271a7..0000000
--- a/docs/html/guide/topics/manifest/path-permission-element.jd
+++ /dev/null
@@ -1,104 +0,0 @@
-page.title=&lt;path-permission&gt;
-@jd:body
-
-<dl class="xml">
-<dt>syntax:</dt>
-<dd><pre class="stx">
-&lt;path-permission android:<a href="#path">path</a>="<i>string</i>"
-                 android:<a href="#pathPrefix">pathPrefix</a>="<i>string</i>"
-                 android:<a href="#pathPattern">pathPattern</a>="<i>string</i>"
-                 android:<a href="#permission">permission</a>="<i>string</i>"
-                 android:<a href="#readPermission">readPermission</a>="<i>string</i>"
-                 android:<a href="#writePermission">writePermission</a>="<i>string</i>" /&gt;
-</pre></dd>
-
-<dt>contained in:</dt>
-<dd><code><a href="{@docRoot}guide/topics/manifest/provider-element.html">&lt;provider&gt;</a></code></dd>
-
-<!--
-<dt>can contain:</dt>
-</dd>
--->
-
-<dt>description:</dt>
-<dd>Defines the path and required permissions for a specific subset of data
-within a content provider. This element can be
-specified multiple times to supply multiple paths.
-
-</dd>
-
-<dt>attributes:</dt>
-
-<dd><dl class="attr">
-<dt><a name="path"></a>{@code android:path}</dt>
-<dd>A complete URI path for a subset of content provider data. 
-Permission can be granted only to the particular data identified by this path. 
-When used to provide search suggestion content, it must be appended 
-with "/search_suggest_query".
-</dd>
-
-<dt><a name="pathPrefix"></a>{@code android:pathPrefix}</dt>
-<dd>The initial part of a URI path for a subset of content provider data.
-Permission can be granted to all data subsets with paths that share this initial part.
-</dd>
-
-<dt><a name="pathPattern"></a>{@code android:pathPattern}</dt>
-<dd>A complete URI path for a subset of content provider data,
-but one that can use the following wildcards:
- 
-<ul> 
-<li>An asterisk ('<code class="Code prettyprint">*</code>'). This matches a sequence of 0 to many occurrences of
-the immediately preceding character.</li> 
- 
-<li>A period followed by an asterisk ("<code class="Code prettyprint">.*</code>"). This matches any sequence of 
-0 or more characters.</li> 
-</ul> 
- 
-<p> 
-Because '<code class="Code prettyprint">\</code>' is used as an escape character when the string is read 
-from XML (before it is parsed as a pattern), you will need to double-escape.
-For example, a literal '<code class="Code prettyprint">*</code>' would be written as "<code class="Code prettyprint">\\*</code>" and a 
-literal '<code class="Code prettyprint">\</code>' would be written as "<code class="Code prettyprint">\\</code>".  This is basically 
-the same as what you would need to write if constructing the string in Java code.
-</p> 
-<p> 
-For more information on these types of patterns, see the descriptions of 
-<a href="/reference/android/os/PatternMatcher.html#PATTERN_LITERAL">PATTERN_LITERAL</a>,
-<a href="/reference/android/os/PatternMatcher.html#PATTERN_PREFIX">PATTERN_PREFIX</a>, and
-<a href="/reference/android/os/PatternMatcher.html#PATTERN_SIMPLE_GLOB">PATTERN_SIMPLE_GLOB</a> in the
-<a href="/reference/android/os/PatternMatcher.html">PatternMatcher</a> class.
-</p>
-</dd>
-
-<dt><a name="permission"></a>{@code android:permission}</dt>
-<dd>The name of a permission that clients must have in order to read or write the
-content provider's data.  This attribute is a convenient way of setting a 
-single permission for both reading and writing.  However, the 
-<code>readPermission</code> and 
-<code>writePermission</code> attributes take precedence
-over this one.
-</dd> 
-
-<dt><a name="readPermission"></a>{@code android:readPermission}</dt>
-<dd>A permission that clients must have in order to query the content provider.
-</dd> 
-
-<dt><a name="writePermission"></a>{@code android:writePermission}</dt>
-<dd>A permission that clients must have in order to make changes to the data controlled by the content provider.
-</dd> 
-
-
-
-</dl></dd>
-
-<!-- ##api level indication## -->
-<dt>introduced in:</dt>
-<dd>API Level 4</dd>
-
-<dt>see also:</dt>
-<dd>{@link android.app.SearchManager}</dd>
-<dd>{@link android.Manifest.permission}</dd>
-<dd><a href="/guide/topics/security/security.html">Security and
-Permissions</a></dd>
-
-</dl>
diff --git a/docs/html/guide/topics/manifest/permission-tree-element.jd b/docs/html/guide/topics/manifest/permission-tree-element.jd
index 3074354..aecc930 100644
--- a/docs/html/guide/topics/manifest/permission-tree-element.jd
+++ b/docs/html/guide/topics/manifest/permission-tree-element.jd
@@ -46,7 +46,7 @@
 <dd>The name that's at the base of the permission tree.  It serves as 
 a prefix to all permission names in the tree.  Java-style scoping should 
 be used to ensure that the name is unique.  The name must have more than 
-two period-separated seqments in its path &mdash; for example, 
+two period-separated segments in its path &mdash; for example, 
 {@code com.example.base} is OK, but {@code com.example} is not.</dd>
 
 </dl></dd>
diff --git a/docs/html/guide/topics/manifest/provider-element.jd b/docs/html/guide/topics/manifest/provider-element.jd
index 98892f1..c80b207 100644
--- a/docs/html/guide/topics/manifest/provider-element.jd
+++ b/docs/html/guide/topics/manifest/provider-element.jd
@@ -25,9 +25,7 @@
 
 <dt>can contain:</dt>
 <dd><code><a href="{@docRoot}guide/topics/manifest/meta-data-element.html">&lt;meta-data&gt;</a></code>
-<br/><code><a href="{@docRoot}guide/topics/manifest/grant-uri-permission-element.html">&lt;grant-uri-permission&gt;</a></code>
-<br/><code><a href="{@docRoot}guide/topics/manifest/path-permission-element.html">&lt;path-permission /&gt;</a></code>
-</dd>
+<br/><code><a href="{@docRoot}guide/topics/manifest/grant-uri-permission-element.html">&lt;grant-uri-permission&gt;</a></code></dd>
 
 <dt>description:</dt>
 <dd>Declares a content provider &mdash; a subclass of 
@@ -187,7 +185,7 @@
 Normally, a content provider is instantiated in the process of the 
 application that defined it.  However, if this flag is set to "{@code true}", 
 the system can create an instance in every process where there's a client 
-that wants to interact withit, thus avoiding the overhead of interprocess 
+that wants to interact with it, thus avoiding the overhead of interprocess 
 communication.
 </p></dd>
 
diff --git a/docs/html/guide/topics/manifest/receiver-element.jd b/docs/html/guide/topics/manifest/receiver-element.jd
index 280d402..b208917 100644
--- a/docs/html/guide/topics/manifest/receiver-element.jd
+++ b/docs/html/guide/topics/manifest/receiver-element.jd
@@ -17,7 +17,7 @@
 <dd><code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code></dd>
 
 <dt>can contain:</dt>
-<dd><code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filer&gt;</a></code>
+<dd><code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a></code>
 <br/><code><a href="{@docRoot}guide/topics/manifest/meta-data-element.html">&lt;meta-data&gt;</a></code></dd>
 
 <dt>description:</dt>
diff --git a/docs/html/guide/topics/manifest/service-element.jd b/docs/html/guide/topics/manifest/service-element.jd
index e5ac7b5..0a44e2c 100644
--- a/docs/html/guide/topics/manifest/service-element.jd
+++ b/docs/html/guide/topics/manifest/service-element.jd
@@ -17,7 +17,7 @@
 <dd><code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code></dd>
 
 <dt>can contain:</dt>
-<dd><code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filer&gt;</a></code>
+<dd><code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a></code>
 <br/><code><a href="{@docRoot}guide/topics/manifest/meta-data-element.html">&lt;meta-data&gt;</a></code></dd>
 
 <dt>description:</dt>
diff --git a/docs/html/guide/topics/media/jet/jetcreator_manual.jd b/docs/html/guide/topics/media/jet/jetcreator_manual.jd
index 9692d97..214c79e 100644
--- a/docs/html/guide/topics/media/jet/jetcreator_manual.jd
+++ b/docs/html/guide/topics/media/jet/jetcreator_manual.jd
@@ -993,7 +993,7 @@
      results, scoring or other game actions can take place. </li>
   <li><span
      lang=EN-IE>Musical transitions between levels or action sequences can be
-     synchronized to be musically seemless.</li>
+     synchronized to be musically seamless.</li>
 </ol>
 
 
diff --git a/docs/html/guide/topics/providers/content-providers.jd b/docs/html/guide/topics/providers/content-providers.jd
index 86dcebf..5da760a 100644
--- a/docs/html/guide/topics/providers/content-providers.jd
+++ b/docs/html/guide/topics/providers/content-providers.jd
@@ -731,7 +731,7 @@
 URI for a TransportationProvider class could be defined as follows:
 
 <pre>public static final Uri CONTENT_URI = 
-               Uri.parse("content://com.example.codelab.transporationprovider");</pre>
+               Uri.parse("content://com.example.codelab.transportationprovider");</pre>
 
 <p>
 If the provider has subtables, also define {@code CONTENT_URI} constants for
@@ -740,9 +740,9 @@
 For example:
 </p>
 
-<p style="margin-left: 2em">{@code content://com.example.codelab.transporationprovider/train} 
-<br/>{@code content://com.example.codelab.transporationprovider/air/domestic}
-<br/>{@code content://com.example.codelab.transporationprovider/air/international}</p>
+<p style="margin-left: 2em">{@code content://com.example.codelab.transportationprovider/train} 
+<br/>{@code content://com.example.codelab.transportationprovider/air/domestic}
+<br/>{@code content://com.example.codelab.transportationprovider/air/international}</p>
 
 <p>
 For an overview of {@code content:} URIs, see the <a href="#urisum">Content URI 
diff --git a/docs/html/guide/topics/resources/available-resources.jd b/docs/html/guide/topics/resources/available-resources.jd
index f5f1475..0e003a0e 100644
--- a/docs/html/guide/topics/resources/available-resources.jd
+++ b/docs/html/guide/topics/resources/available-resources.jd
@@ -225,7 +225,7 @@
 <p>
     The following declares two strings: the first &mdash; simple text with no
     formatting (resulting in a CharSequence that is simply a String object) &mdash; the second includes formatting information in the string (resulting
-    in a CharSequence that is a complex data structure). If you are using the custom editor for string files in Eclipse, the HTML formatting tags will automatically be escaped and you will need to use {@link android.content.Context#getString(int) Context.getString()} and {@link android.text.Html#fromHtml} to retreive the resource and then convert it to formatted text.
+    in a CharSequence that is a complex data structure). If you are using the custom editor for string files in Eclipse, the HTML formatting tags will automatically be escaped and you will need to use {@link android.content.Context#getString(int) Context.getString()} and {@link android.text.Html#fromHtml} to retrieve the resource and then convert it to formatted text.
 </p>
 <pre>
 &lt;resources&gt;
diff --git a/docs/html/guide/topics/resources/resources-i18n.jd b/docs/html/guide/topics/resources/resources-i18n.jd
index 091bc62..0e7d585 100755
--- a/docs/html/guide/topics/resources/resources-i18n.jd
+++ b/docs/html/guide/topics/resources/resources-i18n.jd
@@ -762,7 +762,7 @@
 contains all of the standard view attributes: padding, visibility,
 background, etc.; when View is inflated it uses this style class to
 retrieve those values from the XML file (at which point style and theme
-information is applied as approriate) and load them into its instance.</p>
+information is applied as appropriate) and load them into its instance.</p>
 
 <p><strong>Configuration</strong>: For any particular resource identifier, there may be
 multiple different available values depending on the current configuration.
diff --git a/docs/html/guide/topics/ui/binding.jd b/docs/html/guide/topics/ui/binding.jd
index 85aed18..4725321 100644
--- a/docs/html/guide/topics/ui/binding.jd
+++ b/docs/html/guide/topics/ui/binding.jd
@@ -37,7 +37,7 @@
 
 <h2 id="FillingTheLayout">Filling the Layout with Data</h2>
 <p>Inserting data into the layout is typically done by binding the AdapterView class to an {@link
-android.widget.Adapter}, which retireves data from an external source (perhaps a list that
+android.widget.Adapter}, which retrieves data from an external source (perhaps a list that
 the code supplies or query results from the device's database). </p>
 <p>The following code sample does the following:</p>
 <ol>
@@ -68,7 +68,7 @@
     android.R.layout.simple_spinner_item, // Use a template
                                           // that displays a
                                           // text view
-    cur, // Give the cursor to the list adatper
+    cur, // Give the cursor to the list adapter
     new String[] {People.NAME}, // Map the NAME column in the
                                          // people database to...
     new int[] {android.R.id.text1}); // The "text1" view defined in
@@ -86,7 +86,7 @@
 that the data has been changed and it should refresh itself.</p>
 
 <h2 id="HandlingUserSelections">Handling User Selections</h2>
-<p>You handle the user's selecction by setting the class's {@link
+<p>You handle the user's selection by setting the class's {@link
 android.widget.AdapterView.OnItemClickListener} member to a listener and
 catching the selection changes. </p>
 <pre>
diff --git a/docs/html/guide/topics/ui/custom-components.jd b/docs/html/guide/topics/ui/custom-components.jd
index 76d1034..6027a82 100644
--- a/docs/html/guide/topics/ui/custom-components.jd
+++ b/docs/html/guide/topics/ui/custom-components.jd
@@ -159,7 +159,7 @@
 <p class="note"><strong>Note:</strong>
 This does not apply to 3D graphics. If you want to
 use 3D graphics, you must extend {@link android.view.SurfaceView SurfaceView}
-instead of View, and draw from a seperate thread. See the
+instead of View, and draw from a separate thread. See the
 GLSurfaceViewActivity sample
 for details.</p>
 
@@ -443,7 +443,7 @@
 similar to what you want, you can simply extend that component and just
 override the behavior that you want to change. You can do all of the things
 you would do with a fully customized component, but by starting with a more
-specialized class in the View heirarchy, you can also get a lot of behavior for
+specialized class in the View hierarchy, you can also get a lot of behavior for
 free that probably does exactly what you want.</p>
 <p>For example, the SDK includes a <a
 href="{@docRoot}guide/samples/NotePad/index.html">NotePad application</a> in the
diff --git a/docs/html/guide/topics/ui/declaring-layout.jd b/docs/html/guide/topics/ui/declaring-layout.jd
index 80ad7b8..fdd5ddd 100644
--- a/docs/html/guide/topics/ui/declaring-layout.jd
+++ b/docs/html/guide/topics/ui/declaring-layout.jd
@@ -119,7 +119,7 @@
 
 <p>The <code>onCreate()</code> callback method in your Activity is called by the Android framework when
 your Activity is launched (see the discussion on Lifecycles, in the 
-<a href="{@docRoot}guide/topics/fundamentals.html#lcycles">Application Fundamantals</a>, for more on this).</p>
+<a href="{@docRoot}guide/topics/fundamentals.html#lcycles">Application Fundamentals</a>, for more on this).</p>
 
 
 <h2 id="attributes">Attributes</h2>
diff --git a/docs/html/guide/topics/ui/dialogs.jd b/docs/html/guide/topics/ui/dialogs.jd
index 4e4ca14..c476b0d 100644
--- a/docs/html/guide/topics/ui/dialogs.jd
+++ b/docs/html/guide/topics/ui/dialogs.jd
@@ -154,7 +154,7 @@
 
 <h3>Using dismiss listeners</h3>
 
-<p>If you'd like your applcation to perform some procedures the moment that a dialog is dismissed, 
+<p>If you'd like your application to perform some procedures the moment that a dialog is dismissed, 
 then you should attach an on-dismiss listener to your Dialog.</p>
 
 <p>First define the {@link android.content.DialogInterface.OnDismissListener} interface.
diff --git a/docs/html/guide/topics/ui/how-android-draws.jd b/docs/html/guide/topics/ui/how-android-draws.jd
index 21f9833..efb55a2 100644
--- a/docs/html/guide/topics/ui/how-android-draws.jd
+++ b/docs/html/guide/topics/ui/how-android-draws.jd
@@ -51,7 +51,7 @@
    </p>
    
    <div class="sidebox"><p>
-   To intiate a layout, call <code>{@link android.view.View#requestLayout}</code>. This method is typically
+   To initiate a layout, call <code>{@link android.view.View#requestLayout}</code>. This method is typically
    called by a View on itself when it believes that is can no longer fit within
    its current bounds.</p>
    </div>
@@ -86,7 +86,7 @@
     child. The child must use this size, and guarantee that all of its
     descendants will fit within this size.</li>
     <li><var>AT_MOST</var>: This is used by the parent to impose a maximum size on the
-    child. The child must gurantee that it and all of its descendants will fit
+    child. The child must guarantee that it and all of its descendants will fit
     within this size.</li>
    </ul>
    
diff --git a/docs/html/guide/topics/ui/index.jd b/docs/html/guide/topics/ui/index.jd
index ef23672..494bda8 100644
--- a/docs/html/guide/topics/ui/index.jd
+++ b/docs/html/guide/topics/ui/index.jd
@@ -74,7 +74,7 @@
 
 <p>The most common way to define your layout and express the view hierarchy is with an XML layout file.
 XML offers a human-readable structure for the layout, much like HTML. Each element in XML is 
-either a View or ViewGroup object (or descendent thereof). View objects are leaves in the tree, 
+either a View or ViewGroup object (or descendant thereof). View objects are leaves in the tree, 
 ViewGroup objects are branches in the tree (see the View Hierarchy figure above).</p>
 <p>The name of an XML element
 is respective to the Java class that it represents. So a <code>&lt;TextView></code> element creates
diff --git a/docs/html/guide/topics/ui/menus.jd b/docs/html/guide/topics/ui/menus.jd
index bae94ca..0129e8f 100644
--- a/docs/html/guide/topics/ui/menus.jd
+++ b/docs/html/guide/topics/ui/menus.jd
@@ -86,7 +86,7 @@
 Usually, you'll want to use one that accepts an <var>itemId</var> argument. 
 This is a unique integer that allows you to identify the item during a callback.</p>
 
-<p>When a menu item is selected from the Options Menu, you will recieve a callback to the
+<p>When a menu item is selected from the Options Menu, you will receive a callback to the
 <code>{@link android.app.Activity#onOptionsItemSelected(MenuItem) onOptionsItemSelected()}</code> 
 method of your Activity. This callback passes you the 
 <code>MenuItem</code> that has been selected. You can identify the item by requesting the 
@@ -216,7 +216,7 @@
 All we need from
 this is the list ID for the selected item, so whether editing a note or deleting it, 
 we find the ID with the {@code AdapterContextMenuInfo.info} field of the object. This ID
-is passed to the <code>editNote()</code> and <code>deleteNote()</code> methods to perfrom
+is passed to the <code>editNote()</code> and <code>deleteNote()</code> methods to perform
 the respective action.</p>
 
 <p>Now, to register this context menu for all the items in a {@link android.widget.ListView},
@@ -338,7 +338,7 @@
 <img align="right" src="{@docRoot}images/radio_buttons.png" alt="" />
 <p>Any menu item can be used as an interface for turning options on and off. This can
 be indicated with a checkbox for stand-alone options, or radio buttons for groups of
-mutually exlusive options (see the screenshot, to the right).</p>
+mutually exclusive options (see the screenshot, to the right).</p>
 
 <p class="note"><strong>Note:</strong> Menu items in the Icon Menu cannot
 display a checkbox or radio button. If you choose to make items in the Icon Menu checkable,
@@ -490,7 +490,7 @@
          null,   // Specific items to place first (none)
          intent, // Intent created above that describes our requirements
          0,      // Additional flags to control items (none)
-         null);  // Array of MenuItems that corrolate to specific items (none)
+         null);  // Array of MenuItems that correlate to specific items (none)
 
     return true;
 }</pre>
diff --git a/docs/html/guide/topics/ui/notifiers/index.jd b/docs/html/guide/topics/ui/notifiers/index.jd
index 5b37f5b6..f7ccce7 100644
--- a/docs/html/guide/topics/ui/notifiers/index.jd
+++ b/docs/html/guide/topics/ui/notifiers/index.jd
@@ -25,7 +25,7 @@
   <li>When an event such as saving a file is complete, a small message
 should appear to confirm that the save was successful.</li>
   <li>If the application is running in the background and needs the user's attention, 
-the application should create a notificaiton that allows the user to respond at 
+the application should create a notification that allows the user to respond at 
 his or her convenience.</li>
   <li>If the application is 
 performing work that the user must wait for (such as loading a file), 
@@ -49,7 +49,7 @@
 
 <img src="{@docRoot}images/toast.png" alt="" style="float:right" />
 
-<p>A toast notificaiton is a message that pops up on the surface of the window.
+<p>A toast notification is a message that pops up on the surface of the window.
 It only fills the amount of space required for the message and the user's current
 activity remains visible and interactive. The notification automatically fades in and 
 out, and does not accept interaction events. Because a toast can be created from a background 
@@ -97,7 +97,7 @@
 
 <p>You should use a dialog when you need to show a progress bar or a short
 message that requires confirmation from the user (such as an alert with "OK" and "Cancel" buttons). 
-You can use also use dialogs as integral componenents
+You can use also use dialogs as integral components
 in your application's UI and for other purposes besides notifications.
 For a complete discussion on all the available types of dialogs, 
 including its uses for notifications, refer to 
diff --git a/docs/html/guide/topics/ui/notifiers/notifications.jd b/docs/html/guide/topics/ui/notifiers/notifications.jd
index e6fa48f..a0dd9f1 100644
--- a/docs/html/guide/topics/ui/notifiers/notifications.jd
+++ b/docs/html/guide/topics/ui/notifiers/notifications.jd
@@ -316,7 +316,7 @@
   your notification is on-going.</dd>
   <dt><var>number</var> field</dt>
   <dd>This value indicates the current number of events represented by the notification.
-  The appropriate number is overlayed on top of the status bar icon.
+  The appropriate number is overlaid on top of the status bar icon.
   If you intend to use this field, then you must start with "1" when the Notification is first
   created. (If you change the value from zero to anything greater during an update, the number
   is not shown.)</dd>
@@ -375,7 +375,7 @@
 </pre>
 
     <p>This layout is used for the expanded view,
-    but the content of the ImageView and TextView still needs to be defined by the applicaiton.
+    but the content of the ImageView and TextView still needs to be defined by the application.
     RemoteViews offers some convenient methods that allow you to define this content...</p>
   </li>
 
@@ -389,7 +389,7 @@
 notification.contentView = contentView;
 </pre>
 
-    <p>As shown here, pass the applicaiton's package name and the layout 
+    <p>As shown here, pass the application's package name and the layout 
     resource ID to the RemoteViews constructor. Then, define the content for the ImageView and TextView,
     using the {@link android.widget.RemoteViews#setImageViewResource(int, int) setImageViewResource()}
     and {@link android.widget.RemoteViews#setTextViewText(int, CharSequence) setTextViewText()}.
diff --git a/docs/html/guide/topics/ui/notifiers/toasts.jd b/docs/html/guide/topics/ui/notifiers/toasts.jd
index a800c3c..5b324d2 100644
--- a/docs/html/guide/topics/ui/notifiers/toasts.jd
+++ b/docs/html/guide/topics/ui/notifiers/toasts.jd
@@ -18,7 +18,7 @@
   </div>
 </div>
 
-<p>A toast notificaiton is a message that pops up on the surface of the window.
+<p>A toast notification is a message that pops up on the surface of the window.
 It only fills the amount of space required for the message and the user's current
 activity remains visible and interactive. The notification automatically fades in and 
 out, and does not accept interaction events.</p>
diff --git a/docs/html/guide/topics/ui/themes.jd b/docs/html/guide/topics/ui/themes.jd
index 41e8563..03995126 100644
--- a/docs/html/guide/topics/ui/themes.jd
+++ b/docs/html/guide/topics/ui/themes.jd
@@ -111,7 +111,7 @@
 </p>
 
 <h3 id="inTheManifest">Set the theme in the manifest</h3>
-<p>To set this theme for all the activites of your application, open the AndroidManifest.xml file and 
+<p>To set this theme for all the activities of your application, open the AndroidManifest.xml file and 
 edit the <code>&lt;application></code> tag to include the <code>android:theme</code> attribute with the 
 theme name:</p>
 
diff --git a/docs/html/guide/topics/ui/ui-events.jd b/docs/html/guide/topics/ui/ui-events.jd
index 5628d46..6b30e44 100644
--- a/docs/html/guide/topics/ui/ui-events.jd
+++ b/docs/html/guide/topics/ui/ui-events.jd
@@ -139,7 +139,7 @@
     this event can have multiple actions that follow each other. So, if you return <em>false</em> when the
     down action event is received, you indicate that you have not consumed the event and are also
     not interested in subsequent actions from this event. Thus, you will not be called for any other actions
-    within the event, such as a fingure gesture, or the eventual up action event.</li>
+    within the event, such as a finger gesture, or the eventual up action event.</li>
 </ul>
 
 <p>Remember that key events are always delivered to the View currently in focus. They are dispatched starting from the top
diff --git a/docs/html/guide/topics/views/custom-views.jd b/docs/html/guide/topics/views/custom-views.jd
index c5f9346..4e0e164 100644
--- a/docs/html/guide/topics/views/custom-views.jd
+++ b/docs/html/guide/topics/views/custom-views.jd
@@ -151,7 +151,7 @@
 <p><em>Note:</em>
 Except for 3D graphics. If you want to
 use 3D graphics, you must extend {@link android.view.SurfaceView SurfaceView}
-instead of View, and draw from a seperate thread. See the
+instead of View, and draw from a separate thread. See the
 GLSurfaceViewActivity sample
 for details.</p>
 <p><code>onMeasure()</code> is a little more involved. <code>onMeasure()</code>
@@ -171,7 +171,7 @@
   <li>
     The overridden <code>onMeasure()</code> method is called with width and
     height measure specifications (<code>widthMeasureSpec</code> and
-    <code>heighMeasureSpec</code> parameters, both are integer codes
+    <code>heightMeasureSpec</code> parameters, both are integer codes
     representing dimensions) which should be treated as requirements for
     the restrictions on the width and height measurements you should produce. A
     full reference to the kind of restrictions these specifications can require
@@ -434,7 +434,7 @@
 similar to what you want, you can simply extend that component and just
 override the behavior that you want to change. You can do all of the things
 you would do with a fully customized component, but by starting with a more
-specialized class in the View heirarchy, you can also get a lot of behavior for
+specialized class in the View hierarchy, you can also get a lot of behavior for
 free that probably does exactly what you want.</p>
 <p>For example, the SDK includes a <a
 href="{@docRoot}samples/NotePad/index.html">NotePad application</a> in the
diff --git a/docs/html/guide/tutorials/hello-world.jd b/docs/html/guide/tutorials/hello-world.jd
index 58d1a16..f6b54ff 100644
--- a/docs/html/guide/tutorials/hello-world.jd
+++ b/docs/html/guide/tutorials/hello-world.jd
@@ -478,12 +478,12 @@
 because it lets you quickly and interactively locate the specific reference
 you're looking for.</p>
 
-<p>It's possible yours looks slighly different than this (perhaps the hexadecimal values are different). 
+<p>It's possible yours looks slightly different than this (perhaps the hexadecimal values are different). 
 For now, notice the inner class named "layout", and its
 member field "main". The Eclipse plugin noticed the XML
 layout file named main.xml and generated a class for it here.  As you add other
 resources to your project (such as strings in the <code>res/values/string.xml</code> file or drawables inside
-the <code>res/drawable/</code> direcory) you'll see <code>R.java</code> change to keep up.</p>
+the <code>res/drawable/</code> directory) you'll see <code>R.java</code> change to keep up.</p>
 <p>When not using Eclipse, this class file will be generated for you at build time (with the Ant tool).</p>
 <p><em>You should never edit this file by hand.</em></p>
 </div>
diff --git a/docs/html/guide/tutorials/views/hello-autocomplete.jd b/docs/html/guide/tutorials/views/hello-autocomplete.jd
index fba1ad8..07235a1 100644
--- a/docs/html/guide/tutorials/views/hello-autocomplete.jd
+++ b/docs/html/guide/tutorials/views/hello-autocomplete.jd
@@ -44,7 +44,7 @@
     textView.setAdapter(adapter);
 }
 </pre>
-	<p>Here, we create an AutoComplteteTextView from our layout. We then 
+	<p>Here, we create an AutoCompleteTextView from our layout. We then 
 	create an {@link android.widget.ArrayAdapter} that binds a <code>simple_dropdown_item_1line</code>
 	layout item to each entry in the <code>COUNTRIES</code> array (which we'll add next).
 	The last part sets the ArrayAdapter to associate with our AutoCompleteTextView.</p>
diff --git a/docs/html/guide/tutorials/views/hello-formstuff.jd b/docs/html/guide/tutorials/views/hello-formstuff.jd
index da4289c..b554001 100644
--- a/docs/html/guide/tutorials/views/hello-formstuff.jd
+++ b/docs/html/guide/tutorials/views/hello-formstuff.jd
@@ -175,7 +175,7 @@
 </li>
 <li>To do something when each is selected, we'll need an OnClickListener. Unlike the other 
 listeners we've created, instead of creating this one as an anonymous inner class, 
-we'll create it as a new object. This way, we can re-use the OnClickLIstener for 
+we'll create it as a new object. This way, we can re-use the OnClickListener for 
 both RadioButtons. So, add the following code in the HelloFormStuff Activity
 (<em>outside</em> the <code>onCreate()</code> method):
 <pre>
diff --git a/docs/html/guide/tutorials/views/hello-gridview.jd b/docs/html/guide/tutorials/views/hello-gridview.jd
index ffb6c93..186c4e7 100644
--- a/docs/html/guide/tutorials/views/hello-gridview.jd
+++ b/docs/html/guide/tutorials/views/hello-gridview.jd
@@ -94,7 +94,7 @@
 }
 </pre>
     <p>First we take care of some required methods inherited from BaseAdapter.
-    The constructor and <code>getCount()</code> are self-explanitory. Normally, <code>getItem()</code>
+    The constructor and <code>getCount()</code> are self-explanatory. Normally, <code>getItem()</code>
     should return the actual object at the specified position in our Adapter, but for this Hello World,
     we're not going to bother. Likewise, <code>getItemId()</code> should return the row id of
     the item, but right now we don't care.</p>
diff --git a/docs/html/guide/tutorials/views/hello-mapview.jd b/docs/html/guide/tutorials/views/hello-mapview.jd
index 7a21485..458db4f 100644
--- a/docs/html/guide/tutorials/views/hello-mapview.jd
+++ b/docs/html/guide/tutorials/views/hello-mapview.jd
@@ -81,7 +81,7 @@
 
    <li>Now open the HelloMapView.java file. For this Activity, we're going to extend the special sub-class of 
       Activity called MapActivity, so change the class declaration to extend 
-      MapActicity, instead of Activity:</p>
+      MapActivity, instead of Activity:</p>
 
       <pre>public class HelloMapView extends MapActivity {</pre>
 
diff --git a/docs/html/guide/tutorials/views/hello-tabwidget.jd b/docs/html/guide/tutorials/views/hello-tabwidget.jd
index 8424616..98dddf53 100644
--- a/docs/html/guide/tutorials/views/hello-tabwidget.jd
+++ b/docs/html/guide/tutorials/views/hello-tabwidget.jd
@@ -53,7 +53,7 @@
     be associated with a different tab.
     In this case, each tab simply shows a different {@link android.widget.TextView} with some text. </p>
     <p>Notice that the TabWidget and the FrameLayout elements have specific <code>android</code> namespace IDs. These are necessary
-    so that the TabHost can automatically retireve references to them, populate the TabWidget with the tabs that we'll define
+    so that the TabHost can automatically retrieve references to them, populate the TabWidget with the tabs that we'll define
     in our code, and swap the views in the FrameLayout. We've also defined our own IDs for each TextView, which we'll use to 
     associate each tab with the view that it should reveal.</p>
     <p>Of course, you can 
diff --git a/docs/html/sdk/1.5_r3/installing.jd b/docs/html/sdk/1.5_r3/installing.jd
index ac475d1..c153071 100644
--- a/docs/html/sdk/1.5_r3/installing.jd
+++ b/docs/html/sdk/1.5_r3/installing.jd
@@ -95,7 +95,7 @@
 <p>Android offers a custom plugin for the Eclipse IDE, called Android
 Development Tools (ADT), that is designed to give you a powerful,
 integrated environment in which to build Android applications. It
-extends the capabilites of Eclipse to let you quickly set up new Android
+extends the capabilities of Eclipse to let you quickly set up new Android
 projects, create an application UI, add components based on the Android
 Framework API, debug your applications using the Android SDK tools, and even export
 signed (or unsigned) APKs in order to distribute your application.</p>
@@ -125,7 +125,7 @@
     <li>In the resulting dialog box, enter a name for the remote site (e.g. "Android Plugin") and 
     enter the URL:
         <pre>https://dl-ssl.google.com/android/eclipse/</pre>
-        <p>If you have trouble aqcuiring the plugin, try using "http" in the URL,
+        <p>If you have trouble acquiring the plugin, try using "http" in the URL,
         instead of "https" (https is preferred for security reasons).</p>
         <p>Click <strong>OK</strong>.</p> </li>
     <li>You should now see the new site added to the search list (and checked).
@@ -151,7 +151,7 @@
     <li>Click <strong>Add Site...</strong> </li>
     <li>Enter the Location:
       <pre>https://dl-ssl.google.com/android/eclipse/</pre>
-        <p>If you have trouble aqcuiring the plugin, try using "http" in the Location URL,
+        <p>If you have trouble acquiring the plugin, try using "http" in the Location URL,
         instead of "https" (https is preferred for security reasons).</p>   
       <p>Click <strong>OK</strong>.</p></li>
     <li>Back in the Available Software view, you should see the plugin listed by the URL,
@@ -217,7 +217,7 @@
 
 <p>Note that there are features of ADT that require some optional 
 Eclipse components (for example, WST). If you encounter an error when 
-installing ADT, your Eclipse installion might not include these components. 
+installing ADT, your Eclipse installation might not include these components. 
 For information about how to quickly add the necessary components to your 
 Eclipse installation, see the troubleshooting topic 
 <a href="{@docRoot}guide/appendix/faq/troubleshooting.html#installeclipsecomponents">ADT 
@@ -271,7 +271,7 @@
   <li>Follow the <a href="{@docRoot}guide/tutorials/notepad/index.html">
   Notepad Tutorial</a> to build a full Android application </li>
   <li>Create a new project for one of the other sample applications
-  included in <code><em>&lt;sdk&gt;</em>/platforms/<em>&lt;platfrom&gt;</em>/samples</code>, 
+  included in <code><em>&lt;sdk&gt;</em>/platforms/<em>&lt;platform&gt;</em>/samples</code>, 
   then compile and run it in your development environment</li>
 </ul>
 
diff --git a/docs/html/sdk/1.5_r3/upgrading.jd b/docs/html/sdk/1.5_r3/upgrading.jd
index c79b656..50a8fec 100644
--- a/docs/html/sdk/1.5_r3/upgrading.jd
+++ b/docs/html/sdk/1.5_r3/upgrading.jd
@@ -174,7 +174,7 @@
 <ol>
     <li>Select <strong>Help</strong> &gt; <strong>Software Updates</strong>.</li>
     <li>Select the <strong>Available Software</strong> tab.</li>
-    <li>Expand the entry for the Andriod plugin (may be listed as the location URL)
+    <li>Expand the entry for the Android plugin (may be listed as the location URL)
       and select "Developer Tools" by checking the box next to it, then click 
       <strong>Install</strong>.</li>
     <li>On the next window, "Android DDMS" and "Android Development Tools" 
@@ -272,7 +272,7 @@
 your AIDL Java files will be generated in here. You <strong>must</strong> remove
 the old <code>R.java</code> and old auto-generated AIDL java files from the 
 <code>src/</code> folder. (This
-does not apply to your own hand-crafted parcelabe AIDL java files.)</p>
+does not apply to your own hand-crafted parcelable AIDL java files.)</p>
 
 <p class="note"><strong>Note:</strong> The "activitycreator" tool has been replaced 
 by the new "android" tool. For information on creating new projects with the android tool,
@@ -368,7 +368,7 @@
   listens for special keypress events that only occur on a keypad, then your application
   should degrade gracefully when there is no keyboard available.
   </li>
-  <li>Performs its own layout orientation changes based on the acceletometer (or via other
+  <li>Performs its own layout orientation changes based on the accelerometer (or via other
   sensors). Some devices running Android 1.5 will automatically rotate the orientation
   (and all devices have the option to turn on auto-rotation), so if your application also
   attempts to rotate the orientation, it can result in strange behavior. In addition, if your
diff --git a/docs/html/sdk/RELEASENOTES.jd b/docs/html/sdk/RELEASENOTES.jd
index bca89f6..79babc1 100644
--- a/docs/html/sdk/RELEASENOTES.jd
+++ b/docs/html/sdk/RELEASENOTES.jd
@@ -337,7 +337,7 @@
   <ul>
     <li>Multiple versions of the Android platform are included (Android 1.1,
 Android 1.5). The tools are updated to let you deploy your application
-on any platform in the SDK, which helps you ensure forward-compitility and, 
+on any platform in the SDK, which helps you ensure forward-compatibility and, 
 if applicable, backward-compatibility.</li>
     <li>Introduces <a href="{@docRoot}guide/developing/tools/avd.html">Android
 Virtual Devices</a> &mdash; (AVD) configurations of options that you
@@ -348,7 +348,7 @@
 Android SDK to give you access to one or more external Android libraries and/or
 a customized (but compliant) system image that can run in the emulator. </li>
     <li>The new Eclipse ADT plugin (version 0.9.x) offers new Wizards to let you
-create projects targetted for specific Android configurations, generate XML
+create projects targeted for specific Android configurations, generate XML
 resources (such as layouts, animations, and menus), generate alternate layouts,
 and export and sign your application for publishing.</li>
     <li>Improved JUnit support in ADT</li>
@@ -683,9 +683,9 @@
 
 <h3>Other Notes</h3>
 
-<p><strong>T-Mobile G1 Compatability</strong></p>
+<p><strong>T-Mobile G1 Compatibility</strong></p>
 
-<p>This version of the SDK has been tested for compatability with the first 
+<p>This version of the SDK has been tested for compatibility with the first 
 Android-powered mobile device, the <a href="http://www.t-mobileg1.com">T-Mobile
 G1</a>. </p>
 
diff --git a/docs/html/sdk/ndk/1.5_r1/index.jd b/docs/html/sdk/ndk/1.5_r1/index.jd
index 7ccbbcd..16d543d 100644
--- a/docs/html/sdk/ndk/1.5_r1/index.jd
+++ b/docs/html/sdk/ndk/1.5_r1/index.jd
@@ -146,7 +146,7 @@
 
 <p>The sections below describe the system and software requirements for using
 the Android NDK, as well as platform compatibility considerations that affect
-appplications using libraries produced with the NDK. </p>
+applications using libraries produced with the NDK. </p>
 
 <h4>The Android SDK</h4>
 <ul>
diff --git a/docs/html/videos/index.jd b/docs/html/videos/index.jd
index 4e53aac..157c077 100644
--- a/docs/html/videos/index.jd
+++ b/docs/html/videos/index.jd
@@ -98,7 +98,7 @@
     // Check whether this playlist includes the video title inside the description meta-data, so we can remove it
     if (playlistsWithTitleInDescription.indexOf(playlistId) != -1) {
       var lines = fullDescription.split("\n");
-      // If the first line includes the first 17 chars from the title, let's use the title from the desciption instead (because it's a more complete title)
+      // If the first line includes the first 17 chars from the title, let's use the title from the description instead (because it's a more complete title)
       // This accounts for, literally, "Google I/O 2009 -", which is (so far) the min AND max for properly identifying a title in the only playlist with titles in the description
       if (lines[0].indexOf(title.slice(0,16)) != -1) {  
 			h3Title = "<h3>" + lines[0] + "</h3>"; 	
@@ -332,7 +332,7 @@
 <script type="text/javascript">
 // Initialization actions
 showFeatured();            // load featured videos
-showPlaylists();           // load playslists
+showPlaylists();           // load playlists
 </script>
 
-	
\ No newline at end of file
+	
diff --git a/libs/rs/rsAllocation.cpp b/libs/rs/rsAllocation.cpp
index 2cbfe17..75b4462 100644
--- a/libs/rs/rsAllocation.cpp
+++ b/libs/rs/rsAllocation.cpp
@@ -127,6 +127,7 @@
         return;
     }
     memcpy(mPtr, data, size);
+    sendDirty();
 }
 
 void Allocation::read(void *data)
@@ -147,6 +148,7 @@
         return;
     }
     memcpy(ptr, data, size);
+    sendDirty();
 }
 
 void Allocation::subData(uint32_t xoff, uint32_t yoff,
@@ -171,6 +173,7 @@
         src += lineSize;
         dst += destW * eSize;
     }
+    sendDirty();
 }
 
 void Allocation::subData(uint32_t xoff, uint32_t yoff, uint32_t zoff,
@@ -178,7 +181,28 @@
 {
 }
 
+void Allocation::addProgramToDirty(const Program *p)
+{
+    mToDirtyList.add(p);
+}
 
+void Allocation::removeProgramToDirty(const Program *p)
+{
+    for (size_t ct=0; ct < mToDirtyList.size(); ct++) {
+        if (mToDirtyList[ct] == p) {
+            mToDirtyList.removeAt(ct);
+            return;
+        }
+    }
+    rsAssert(0);
+}
+
+void Allocation::sendDirty() const
+{
+    for (size_t ct=0; ct < mToDirtyList.size(); ct++) {
+        mToDirtyList[ct]->forceDirty();
+    }
+}
 
 /////////////////
 //
@@ -414,31 +438,24 @@
     RsAllocation ret = rsi_AllocationCreateFromBitmap(rsc, w2, h2, _dst, _src, genMips, tmp);
     free(tmp);
     return ret;
-
-
-
-
 }
 
 void rsi_AllocationData(Context *rsc, RsAllocation va, const void *data, uint32_t sizeBytes)
 {
     Allocation *a = static_cast<Allocation *>(va);
     a->data(data, sizeBytes);
-    rsc->allocationCheck(a);
 }
 
 void rsi_Allocation1DSubData(Context *rsc, RsAllocation va, uint32_t xoff, uint32_t count, const void *data, uint32_t sizeBytes)
 {
     Allocation *a = static_cast<Allocation *>(va);
     a->subData(xoff, count, data, sizeBytes);
-    rsc->allocationCheck(a);
 }
 
 void rsi_Allocation2DSubData(Context *rsc, RsAllocation va, uint32_t xoff, uint32_t yoff, uint32_t w, uint32_t h, const void *data, uint32_t sizeBytes)
 {
     Allocation *a = static_cast<Allocation *>(va);
     a->subData(xoff, yoff, w, h, data, sizeBytes);
-    rsc->allocationCheck(a);
 }
 
 void rsi_AllocationRead(Context *rsc, RsAllocation va, void *data)
diff --git a/libs/rs/rsAllocation.h b/libs/rs/rsAllocation.h
index 1b83267..cf3ea9e 100644
--- a/libs/rs/rsAllocation.h
+++ b/libs/rs/rsAllocation.h
@@ -23,7 +23,7 @@
 namespace android {
 namespace renderscript {
 
-
+class Program;
 
 class Allocation : public ObjectBase
 {
@@ -65,11 +65,17 @@
     void enableGLVertexBuffers() const;
     void setupGLIndexBuffers() const;
 
+    void addProgramToDirty(const Program *);
+    void removeProgramToDirty(const Program *);
 
 protected:
+    void sendDirty() const;
+
     ObjectBaseRef<const Type> mType;
     void * mPtr;
 
+    Vector<const Program *> mToDirtyList;
+
     // Usage restrictions
     bool mCpuWrite;
     bool mCpuRead;
diff --git a/libs/rs/rsContext.cpp b/libs/rs/rsContext.cpp
index 961ec0b..40e3c4a 100644
--- a/libs/rs/rsContext.cpp
+++ b/libs/rs/rsContext.cpp
@@ -482,13 +482,6 @@
     }
 }
 
-void Context::allocationCheck(const Allocation *a)
-{
-    mVertex->checkUpdatedAllocation(a);
-    mFragment->checkUpdatedAllocation(a);
-    mFragmentStore->checkUpdatedAllocation(a);
-}
-
 void Context::setVertex(ProgramVertex *pv)
 {
     if (pv == NULL) {
@@ -496,7 +489,6 @@
     } else {
         mVertex.set(pv);
     }
-    mVertex->forceDirty();
 }
 
 void Context::assignName(ObjectBase *obj, const char *name, uint32_t len)
diff --git a/libs/rs/rsContext.h b/libs/rs/rsContext.h
index c80fd5a..a919983 100644
--- a/libs/rs/rsContext.h
+++ b/libs/rs/rsContext.h
@@ -90,7 +90,6 @@
     const ProgramVertex * getVertex() {return mVertex.get();}
 
     void setupCheck();
-    void allocationCheck(const Allocation *);
 
     void pause();
     void resume();
diff --git a/libs/rs/rsProgram.cpp b/libs/rs/rsProgram.cpp
index 5f2a609..ed5918b 100644
--- a/libs/rs/rsProgram.cpp
+++ b/libs/rs/rsProgram.cpp
@@ -32,19 +32,23 @@
 
 Program::~Program()
 {
+    bindAllocation(NULL);
 }
 
 
 void Program::bindAllocation(Allocation *alloc)
 {
+    if (mConstants.get() == alloc) {
+        return;
+    }
+    if (mConstants.get()) {
+        mConstants.get()->removeProgramToDirty(this);
+    }
     mConstants.set(alloc);
+    if (alloc) {
+        alloc->addProgramToDirty(this);
+    }
     mDirty = true;
 }
 
-void Program::checkUpdatedAllocation(const Allocation *alloc)
-{
-    if (mConstants.get() == alloc) {
-        mDirty = true;
-    }
-}
 
diff --git a/libs/rs/rsProgram.h b/libs/rs/rsProgram.h
index 57c654f..86a46e2 100644
--- a/libs/rs/rsProgram.h
+++ b/libs/rs/rsProgram.h
@@ -33,7 +33,6 @@
     virtual ~Program();
 
     void bindAllocation(Allocation *);
-    void checkUpdatedAllocation(const Allocation *);
 
 protected:
     // Components not listed in "in" will be passed though
@@ -47,7 +46,7 @@
 
 
 public:
-    void forceDirty() {mDirty = true;}
+    void forceDirty() const {mDirty = true;}
 };
 
 
diff --git a/media/sdutils/Android.mk b/media/sdutils/Android.mk
index dafb8a6..74e1eca 100644
--- a/media/sdutils/Android.mk
+++ b/media/sdutils/Android.mk
@@ -6,7 +6,7 @@
 LOCAL_SRC_FILES:= \
 	sdutil.cpp \
 
-LOCAL_SHARED_LIBRARIES := libhardware_legacy libcutils libutils libc
+LOCAL_SHARED_LIBRARIES := libhardware_legacy libbinder libcutils libutils libc
 
 LOCAL_MODULE:= sdutil
 LOCAL_MODULE_TAGS := debug
diff --git a/media/tests/omxjpegdecoder/Android.mk b/media/tests/omxjpegdecoder/Android.mk
new file mode 100644
index 0000000..731907c
--- /dev/null
+++ b/media/tests/omxjpegdecoder/Android.mk
@@ -0,0 +1,54 @@
+# Copyright (C) 2009 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+ifeq ($(BUILD_WITH_FULL_STAGEFRIGHT),true)
+
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+        omx_jpeg_decoder.cpp \
+        jpeg_decoder_bench.cpp \
+        SkOmxPixelRef.cpp \
+        StreamSource.cpp
+
+
+# add external/skia/src/images/SkImageDecoder_libjpeg.cpp
+LOCAL_SRC_FILES += \
+        ../../../../../external/skia/src/images/SkImageDecoder_libjpeg.cpp
+
+LOCAL_SHARED_LIBRARIES := \
+    libcutils \
+    libskia \
+    libstagefright
+
+LOCAL_C_INCLUDES := \
+    $(TOP)/external/jpeg \
+    $(TOP)/external/skia/include/config \
+    $(TOP)/external/skia/include/core \
+    $(TOP)/external/skia/include/images \
+    $(TOP)/external/skia/include/utils \
+    $(TOP)/external/skia/include/effects \
+    $(TOP)/frameworks/base/media/libstagefright \
+    $(TOP)/external/opencore/extern_libs_v2/khronos/openmax/include \
+    $(TOP)/frameworks/base/include/ \
+    $(TOP)/frameworks/base/
+
+LOCAL_MODULE := jpeg_bench
+
+LOCAL_MODULE_TAGS := optional
+
+include $(BUILD_EXECUTABLE)
+
+endif
diff --git a/media/tests/omxjpegdecoder/SkOmxPixelRef.cpp b/media/tests/omxjpegdecoder/SkOmxPixelRef.cpp
new file mode 100644
index 0000000..3acc0ee
--- /dev/null
+++ b/media/tests/omxjpegdecoder/SkOmxPixelRef.cpp
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <media/stagefright/MediaDebug.h>
+#include <SkBitmap.h>
+
+#include "SkOmxPixelRef.h"
+
+using namespace android;
+
+SkOmxPixelRef::SkOmxPixelRef(SkColorTable* ctable, MediaBuffer* buffer,
+        sp<OMXCodec> decoder)  {
+    mBuffer = buffer;
+    mDecoder = decoder;
+    mSize = buffer->size();
+    mCTable = ctable;
+    SkSafeRef(mCTable);
+}
+
+SkOmxPixelRef::~SkOmxPixelRef() {
+    mBuffer->release();
+    CHECK_EQ(mDecoder->stop(), OK);
+    SkSafeUnref(mCTable);
+}
+
+void* SkOmxPixelRef::onLockPixels(SkColorTable** ct) {
+    *ct = mCTable;
+    return mBuffer->data();
+}
+
+void SkOmxPixelRef::onUnlockPixels() {
+    // nothing to do
+}
diff --git a/media/tests/omxjpegdecoder/SkOmxPixelRef.h b/media/tests/omxjpegdecoder/SkOmxPixelRef.h
new file mode 100644
index 0000000..4ab5a73
--- /dev/null
+++ b/media/tests/omxjpegdecoder/SkOmxPixelRef.h
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef SKOMXPIXELREF_DEFINED
+#define SKOMXPIXELREF_DEFINED
+
+#include <media/stagefright/MediaBuffer.h>
+#include <media/stagefright/OMXClient.h>
+#include <media/stagefright/OMXCodec.h>
+#include <SkPixelRef.h>
+
+namespace android {
+
+class SkOmxPixelRef : public SkPixelRef {
+public:
+    SkOmxPixelRef(SkColorTable* ctable, MediaBuffer* buffer,
+            sp<OMXCodec> decoder);
+    virtual ~SkOmxPixelRef();
+
+     //! Return the allocation size for the pixels
+    size_t getSize() const { return mSize; }
+
+protected:
+    // overrides from SkPixelRef
+    virtual void* onLockPixels(SkColorTable**);
+    virtual void onUnlockPixels();
+
+private:
+    MediaBuffer* mBuffer;
+    sp<OMXCodec> mDecoder;
+    size_t          mSize;
+    SkColorTable*   mCTable;
+
+    typedef SkPixelRef INHERITED;
+};
+
+} // namespace android
+#endif // SKOMXPIXELREF_DEFINED
diff --git a/media/tests/omxjpegdecoder/StreamSource.cpp b/media/tests/omxjpegdecoder/StreamSource.cpp
new file mode 100644
index 0000000..3ca5857d
--- /dev/null
+++ b/media/tests/omxjpegdecoder/StreamSource.cpp
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <media/stagefright/MediaDebug.h>
+
+#include "StreamSource.h"
+
+namespace android {
+
+StreamSource::StreamSource(SkStream *stream)
+        : mStream(stream) {
+    CHECK(stream != NULL);
+    mSize = stream->getLength();
+}
+
+StreamSource::~StreamSource() {
+    delete mStream;
+    mStream = NULL;
+}
+
+status_t StreamSource::InitCheck() const {
+    return mStream != NULL ? OK : NO_INIT;
+}
+
+ssize_t StreamSource::read_at(off_t offset, void *data, size_t size) {
+    Mutex::Autolock autoLock(mLock);
+
+    mStream->rewind();
+    mStream->skip(offset);
+    ssize_t result = mStream->read(data, size);
+
+    return result;
+}
+
+status_t StreamSource::getSize(off_t *size) {
+      *size = mSize;
+      return OK;
+}
+
+}  // namespace android
diff --git a/media/tests/omxjpegdecoder/StreamSource.h b/media/tests/omxjpegdecoder/StreamSource.h
new file mode 100644
index 0000000..dd765d4
--- /dev/null
+++ b/media/tests/omxjpegdecoder/StreamSource.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef STREAM_SOURCE_H_
+
+#define STREAM_SOURCE_H_
+
+#include <stdio.h>
+
+#include <core/SkStream.h>
+#include <media/stagefright/DataSource.h>
+#include <media/stagefright/MediaErrors.h>
+#include <utils/threads.h>
+
+namespace android {
+
+class StreamSource : public DataSource {
+public:
+    // Pass the ownership of SkStream to StreamSource.
+    StreamSource(SkStream *SkStream);
+    status_t InitCheck() const;
+    virtual ssize_t read_at(off_t offset, void *data, size_t size);
+    virtual status_t getSize(off_t *size);
+
+protected:
+    virtual ~StreamSource();
+
+private:
+    SkStream *mStream;
+    size_t mSize;
+    Mutex mLock;
+
+    StreamSource(const StreamSource &);
+    StreamSource &operator=(const StreamSource &);
+};
+
+}  // namespace android
+
+#endif  // STREAM_SOURCE_H_
diff --git a/media/tests/omxjpegdecoder/jpeg_decoder_bench.cpp b/media/tests/omxjpegdecoder/jpeg_decoder_bench.cpp
new file mode 100644
index 0000000..3a13afa
--- /dev/null
+++ b/media/tests/omxjpegdecoder/jpeg_decoder_bench.cpp
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define LOG_TAG "OmxJpegDecoder"
+#include <sys/time.h>
+#include <utils/Log.h>
+
+#include <binder/ProcessState.h>
+
+#include "SkBitmap.h"
+#include "SkImageDecoder.h"
+#include "SkStream.h"
+#include "omx_jpeg_decoder.h"
+
+int nullObjectReturn(const char msg[]) {
+    if (msg) {
+        SkDebugf("--- %s\n", msg);
+    }
+    return -1;
+}
+
+static int64_t getNowUs() {
+    struct timeval tv;
+    gettimeofday(&tv, NULL);
+
+    return tv.tv_usec + (int64_t) tv.tv_sec * 1000000;
+}
+
+int testDecodeBounds(SkImageDecoder* decoder, SkStream* stream,
+        SkBitmap* bitmap) {
+    int64_t startTime = getNowUs();
+    SkBitmap::Config prefConfig = SkBitmap::kARGB_8888_Config;
+    SkImageDecoder::Mode decodeMode = SkImageDecoder::kDecodeBounds_Mode;
+
+    // Decode the input stream and then use the bitmap.
+    if (!decoder->decode(stream, bitmap, prefConfig, decodeMode)) {
+        return nullObjectReturn("decoder->decode returned false");
+    } else {
+        int64_t delay = getNowUs() - startTime;
+        printf("WidthxHeight: %dx%d\n", bitmap->width(), bitmap->height());
+        printf("Decoding Time in BoundsMode %.1f msec.\n", delay / 1000.0f);
+        return 0;
+    }
+}
+
+int testDecodePixels(SkImageDecoder* decoder, SkStream* stream,
+        SkBitmap* bitmap) {
+    int64_t startTime = getNowUs();
+    SkBitmap::Config prefConfig = SkBitmap::kARGB_8888_Config;
+    SkImageDecoder::Mode decodeMode = SkImageDecoder::kDecodePixels_Mode;
+
+    // Decode the input stream and then use the bitmap.
+    if (!decoder->decode(stream, bitmap, prefConfig, decodeMode)) {
+        return nullObjectReturn("decoder->decode returned false");
+    } else {
+        int64_t delay = getNowUs() - startTime;
+        printf("Decoding Time in PixelsMode %.1f msec.\n", delay / 1000.0f);
+        char* filename = "/sdcard/omxJpegDecodedBitmap.rgba";
+        return storeBitmapToFile(bitmap, filename);
+    }
+}
+
+int testDecoder(SkImageDecoder* decoder, char* filename) {
+    // test DecodeMode == Pixels
+    SkStream* stream = new SkFILEStream(filename);
+    SkBitmap* bitmap = new SkBitmap;
+    testDecodePixels(decoder, stream, bitmap);
+    delete bitmap;
+
+    // test DecodeMode == Bounds
+    stream = new SkFILEStream(filename);
+    bitmap = new SkBitmap;
+    testDecodeBounds(decoder, stream, bitmap);
+    delete bitmap;
+
+    delete decoder;
+    return 0;
+}
+
+int main(int argc, char** argv) {
+    android::ProcessState::self()->startThreadPool();
+
+    printf("Decoding jpeg with libjpeg...\n");
+    SkJPEGImageDecoder* libjpeg = new SkJPEGImageDecoder;
+    testDecoder(libjpeg, argv[1]);
+
+    printf("\nDecoding jpeg with OMX...\n");
+    OmxJpegImageDecoder* omx = new OmxJpegImageDecoder;
+    testDecoder(omx, argv[1]);
+    return 0;
+}
diff --git a/media/tests/omxjpegdecoder/omx_jpeg_decoder.cpp b/media/tests/omxjpegdecoder/omx_jpeg_decoder.cpp
new file mode 100644
index 0000000..8d02f46
--- /dev/null
+++ b/media/tests/omxjpegdecoder/omx_jpeg_decoder.cpp
@@ -0,0 +1,197 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#define LOG_TAG "OmxJpegDecoder"
+#include <sys/time.h>
+#include <utils/Log.h>
+
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <binder/IServiceManager.h>
+#include <binder/ProcessState.h>
+#include <media/IMediaPlayerService.h>
+#include <media/stagefright/MediaDebug.h>
+#include <media/stagefright/MediaSource.h>
+#include <media/stagefright/MetaData.h>
+#include <media/stagefright/OMXClient.h>
+#include <media/stagefright/OMXCodec.h>
+#include <SkMallocPixelRef.h>
+
+#include "omx_jpeg_decoder.h"
+#include "SkOmxPixelRef.h"
+#include "StreamSource.h"
+
+using namespace android;
+
+static void getJpegOutput(MediaBuffer* buffer, char* filename) {
+    int size = buffer->range_length();
+    int offset = buffer->range_offset();
+    FILE *pFile = fopen(filename, "w+");
+
+    if (pFile == NULL) {
+        printf("Error: cannot open %s.\n", filename);
+    } else {
+        char* data = (char*) buffer->data();
+        data += offset;
+        while (size > 0) {
+            int numChars = fwrite(data, sizeof(char), 1024, pFile);
+            int numBytes = numChars * sizeof(char);
+            size -= numBytes;
+            data += numBytes;
+        }
+        fclose(pFile);
+    }
+    return;
+}
+
+extern int storeBitmapToFile(SkBitmap* bitmap, char* filename) {
+    bitmap->lockPixels();
+    void* data = bitmap->getPixels();
+    int size = bitmap->getSize();
+    FILE* fp = fopen(filename, "w+");
+
+    if (NULL == fp) {
+        printf("Cannot open the output file! \n");
+        return -1;
+    } else {
+        while (size > 0) {
+            int numChars = fwrite(data, sizeof(char), 1024, fp);
+            int numBytes = numChars * sizeof(char);
+            size -= numBytes;
+            data += numBytes;
+        }
+        fclose(fp);
+    }
+    return 0;
+}
+
+static int64_t getNowUs() {
+    struct timeval tv;
+    gettimeofday(&tv, NULL);
+
+    return (int64_t)tv.tv_usec + tv.tv_sec * 1000000;
+}
+
+OmxJpegImageDecoder::OmxJpegImageDecoder() {
+    status_t err = mClient.connect();
+    CHECK_EQ(err, OK);
+}
+
+OmxJpegImageDecoder::~OmxJpegImageDecoder() {
+    mClient.disconnect();
+}
+
+bool OmxJpegImageDecoder::onDecode(SkStream* stream,
+        SkBitmap* bm, SkBitmap::Config pref, Mode mode) {
+    sp<MediaSource> source = prepareMediaSource(stream);
+    sp<MetaData> meta = source->getFormat();
+    int width;
+    int height;
+    meta->findInt32(kKeyWidth, &width);
+    meta->findInt32(kKeyHeight, &height);
+    configBitmapSize(bm, pref, width, height);
+
+    // mode == DecodeBounds
+    if (mode == SkImageDecoder::kDecodeBounds_Mode) {
+        return true;
+    }
+
+    // mode == DecodePixels
+    if (!this->allocPixelRef(bm, NULL)) {
+        LOGI(LOG_TAG, "Cannot allocPixelRef()!");
+        return false;
+    }
+
+    sp<OMXCodec> decoder = getDecoder(&mClient, source);
+    return decodeSource(decoder, source, bm);
+}
+
+JPEGSource* OmxJpegImageDecoder::prepareMediaSource(SkStream* stream) {
+    DataSource::RegisterDefaultSniffers();
+    sp<DataSource> dataSource = new StreamSource(stream);
+    return new JPEGSource(dataSource);
+}
+
+sp<OMXCodec> OmxJpegImageDecoder::getDecoder(
+        OMXClient *client, const sp<MediaSource>& source) {
+    sp<MetaData> meta = source->getFormat();
+    sp<OMXCodec> decoder = OMXCodec::Create(
+            client->interface(), meta, false /* createEncoder */, source);
+
+    CHECK(decoder != NULL);
+    return decoder;
+}
+
+bool OmxJpegImageDecoder::decodeSource(sp<OMXCodec> decoder,
+        const sp<MediaSource>& source, SkBitmap* bm) {
+    status_t rt = decoder->start();
+    if (rt != OK) {
+        LOGE(LOG_TAG, "Cannot start OMX Decoder!");
+        return false;
+    }
+    int64_t startTime = getNowUs();
+    MediaBuffer *buffer;
+
+    // decode source
+    status_t err = decoder->read(&buffer, NULL);
+    int64_t duration = getNowUs() - startTime;
+
+    if (err != OK) {
+        CHECK_EQ(buffer, NULL);
+    }
+    printf("Duration in decoder->read(): %.1f (msecs). \n",
+                duration / 1E3 );
+
+    /* Mark the code for now, since we attend to copy buffer to SkBitmap.
+    // Install pixelRef to Bitmap.
+    installPixelRef(buffer, decoder, bm);*/
+
+    // Copy pixels from buffer to bm.
+    // May need to check buffer->rawBytes() == bm->rawBytes().
+    CHECK_EQ(buffer->size(), bm->getSize());
+    memcpy(bm->getPixels(), buffer->data(), buffer->size());
+    buffer->release();
+    decoder->stop();
+
+    return true;
+}
+
+void OmxJpegImageDecoder::installPixelRef(MediaBuffer *buffer, sp<OMXCodec> decoder,
+        SkBitmap* bm) {
+
+    // set bm's pixelref based on the data in buffer.
+    SkAutoLockPixels alp(*bm);
+    SkPixelRef* pr = new SkOmxPixelRef(NULL, buffer, decoder);
+    bm->setPixelRef(pr)->unref();
+    bm->lockPixels();
+    return;
+}
+
+void OmxJpegImageDecoder::configBitmapSize(SkBitmap* bm, SkBitmap::Config pref,
+        int width, int height) {
+    bm->setConfig(getColorSpaceConfig(pref), width, height);
+    bm->setIsOpaque(true);
+}
+
+SkBitmap::Config OmxJpegImageDecoder::getColorSpaceConfig(
+        SkBitmap::Config pref) {
+
+    // Set the color space to ARGB_8888 for now
+    // because of limitation in hardware support.
+    return SkBitmap::kARGB_8888_Config;
+}
diff --git a/media/tests/omxjpegdecoder/omx_jpeg_decoder.h b/media/tests/omxjpegdecoder/omx_jpeg_decoder.h
new file mode 100644
index 0000000..21e2ae6
--- /dev/null
+++ b/media/tests/omxjpegdecoder/omx_jpeg_decoder.h
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef OMXJPEGIMAGEDECODER
+#define OMXJPEGIMAGEDECODER
+
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <media/stagefright/JPEGSource.h>
+#include <media/stagefright/MediaSource.h>
+#include <media/stagefright/OMXClient.h>
+#include <media/stagefright/OMXCodec.h>
+#include <SkImageDecoder.h>
+#include <SkStream.h>
+
+using namespace android;
+
+extern int storeBitmapToFile(SkBitmap* bitmap, char* filename);
+
+class OmxJpegImageDecoder : public SkImageDecoder {
+public:
+    OmxJpegImageDecoder();
+    ~OmxJpegImageDecoder();
+
+    virtual Format getFormat() const {
+        return kJPEG_Format;
+    }
+
+protected:
+    virtual bool onDecode(SkStream* stream, SkBitmap* bm,
+            SkBitmap::Config pref, Mode mode);
+
+private:
+    JPEGSource* prepareMediaSource(SkStream* stream);
+    sp<OMXCodec> getDecoder(OMXClient* client, const sp<MediaSource>& source);
+    bool decodeSource(sp<OMXCodec> decoder, const sp<MediaSource>& source,
+            SkBitmap* bm);
+    void installPixelRef(MediaBuffer* buffer, sp<OMXCodec> decoder,
+            SkBitmap* bm);
+    void configBitmapSize(SkBitmap* bm, SkBitmap::Config pref, int width,
+            int height);
+    SkBitmap::Config getColorSpaceConfig(SkBitmap::Config pref);
+
+    OMXClient mClient;
+};
+
+#endif
diff --git a/opengl/java/android/opengl/GLErrorWrapper.java b/opengl/java/android/opengl/GLErrorWrapper.java
index 884a1a0..9b66e49 100644
--- a/opengl/java/android/opengl/GLErrorWrapper.java
+++ b/opengl/java/android/opengl/GLErrorWrapper.java
@@ -958,4 +958,424 @@
         checkError();
         return valid;
     }
+
+    public void glBindBuffer(int target, int buffer) {
+        checkThread();
+        mgl11.glBindBuffer(target, buffer);
+        checkError();
+    }
+
+    public void glBufferData(int target, int size, Buffer data, int usage) {
+        checkThread();
+        mgl11.glBufferData(target, size, data, usage);
+        checkError();
+    }
+
+    public void glBufferSubData(int target, int offset, int size, Buffer data) {
+        checkThread();
+        mgl11.glBufferSubData(target, offset, size, data);
+        checkError();
+    }
+
+    public void glColor4ub(byte red, byte green, byte blue, byte alpha) {
+        checkThread();
+        mgl11.glColor4ub(red, green, blue, alpha);
+        checkError();    }
+
+    public void glColorPointer(int size, int type, int stride, int offset) {
+        checkThread();
+        mgl11.glColorPointer(size, type, stride, offset);
+        checkError();
+    }
+
+    public void glDeleteBuffers(int n, int[] buffers, int offset) {
+        checkThread();
+        mgl11.glDeleteBuffers(n, buffers, offset);
+        checkError();
+    }
+
+    public void glDeleteBuffers(int n, IntBuffer buffers) {
+        checkThread();
+        mgl11.glDeleteBuffers(n, buffers);
+        checkError();
+    }
+
+    public void glDrawElements(int mode, int count, int type, int offset) {
+        checkThread();
+        mgl11.glDrawElements(mode, count, type, offset);
+        checkError();
+    }
+
+    public void glGenBuffers(int n, int[] buffers, int offset) {
+        checkThread();
+        mgl11.glGenBuffers(n, buffers, offset);
+        checkError();
+    }
+
+    public void glGenBuffers(int n, IntBuffer buffers) {
+        checkThread();
+        mgl11.glGenBuffers(n, buffers);
+        checkError();
+    }
+
+    public void glGetBooleanv(int pname, boolean[] params, int offset) {
+        checkThread();
+        mgl11.glGetBooleanv(pname, params, offset);
+        checkError();
+    }
+
+    public void glGetBooleanv(int pname, IntBuffer params) {
+        checkThread();
+        mgl11.glGetBooleanv(pname, params);
+        checkError();
+    }
+
+    public void glGetBufferParameteriv(int target, int pname, int[] params,
+            int offset) {
+        checkThread();
+        mgl11.glGetBufferParameteriv(target, pname, params, offset);
+        checkError();
+    }
+
+    public void glGetBufferParameteriv(int target, int pname, IntBuffer params) {
+        checkThread();
+        mgl11.glGetBufferParameteriv(target, pname, params);
+        checkError();
+    }
+
+    public void glGetClipPlanef(int pname, float[] eqn, int offset) {
+        checkThread();
+        mgl11.glGetClipPlanef(pname, eqn, offset);
+        checkError();
+    }
+
+    public void glGetClipPlanef(int pname, FloatBuffer eqn) {
+        checkThread();
+        mgl11.glGetClipPlanef(pname, eqn);
+        checkError();
+    }
+
+    public void glGetClipPlanex(int pname, int[] eqn, int offset) {
+        checkThread();
+        mgl11.glGetClipPlanex(pname, eqn, offset);
+        checkError();
+    }
+
+    public void glGetClipPlanex(int pname, IntBuffer eqn) {
+        checkThread();
+        mgl11.glGetClipPlanex(pname, eqn);
+        checkError();
+    }
+
+    public void glGetFixedv(int pname, int[] params, int offset) {
+        checkThread();
+        mgl11.glGetFixedv(pname, params, offset);
+        checkError();
+    }
+
+    public void glGetFixedv(int pname, IntBuffer params) {
+        checkThread();
+        mgl11.glGetFixedv(pname, params);
+        checkError();
+    }
+
+    public void glGetFloatv(int pname, float[] params, int offset) {
+        checkThread();
+        mgl11.glGetFloatv(pname, params, offset);
+        checkError();
+    }
+
+    public void glGetFloatv(int pname, FloatBuffer params) {
+        checkThread();
+        mgl11.glGetFloatv(pname, params);
+        checkError();
+    }
+
+    public void glGetLightfv(int light, int pname, float[] params, int offset) {
+        checkThread();
+        mgl11.glGetLightfv(light, pname, params, offset);
+        checkError();
+    }
+
+    public void glGetLightfv(int light, int pname, FloatBuffer params) {
+        checkThread();
+        mgl11.glGetLightfv(light, pname, params);
+        checkError();
+    }
+
+    public void glGetLightxv(int light, int pname, int[] params, int offset) {
+        checkThread();
+        mgl11.glGetLightxv(light, pname, params, offset);
+        checkError();
+    }
+
+    public void glGetLightxv(int light, int pname, IntBuffer params) {
+        checkThread();
+        mgl11.glGetLightxv(light, pname, params);
+        checkError();
+    }
+
+    public void glGetMaterialfv(int face, int pname, float[] params, int offset) {
+        checkThread();
+        mgl11.glGetMaterialfv(face, pname, params, offset);
+        checkError();
+    }
+
+    public void glGetMaterialfv(int face, int pname, FloatBuffer params) {
+        checkThread();
+        mgl11.glGetMaterialfv(face, pname, params);
+        checkError();
+    }
+
+    public void glGetMaterialxv(int face, int pname, int[] params, int offset) {
+        checkThread();
+        mgl11.glGetMaterialxv(face, pname, params, offset);
+        checkError();
+    }
+
+    public void glGetMaterialxv(int face, int pname, IntBuffer params) {
+        checkThread();
+        mgl11.glGetMaterialxv(face, pname, params);
+        checkError();
+    }
+
+    public void glGetPointerv(int pname, Buffer[] params) {
+        checkThread();
+        mgl11.glGetPointerv(pname, params);
+        checkError();
+    }
+
+    public void glGetTexEnviv(int env, int pname, int[] params, int offset) {
+        checkThread();
+        mgl11.glGetTexEnviv(env, pname, params, offset);
+        checkError();
+    }
+
+    public void glGetTexEnviv(int env, int pname, IntBuffer params) {
+        checkThread();
+        mgl11.glGetTexEnviv(env, pname, params);
+        checkError();
+    }
+
+    public void glGetTexEnvxv(int env, int pname, int[] params, int offset) {
+        checkThread();
+        mgl11.glGetTexEnvxv(env, pname, params, offset);
+        checkError();
+    }
+
+    public void glGetTexEnvxv(int env, int pname, IntBuffer params) {
+        checkThread();
+        mgl11.glGetTexEnvxv(env, pname, params);
+        checkError();
+    }
+
+    public void glGetTexParameterfv(int target, int pname, float[] params,
+            int offset) {
+        checkThread();
+        mgl11.glGetTexParameterfv(target, pname, params, offset);
+        checkError();
+    }
+
+    public void glGetTexParameterfv(int target, int pname, FloatBuffer params) {
+        checkThread();
+        mgl11.glGetTexParameterfv(target, pname, params);
+        checkError();
+    }
+
+    public void glGetTexParameteriv(int target, int pname, int[] params,
+            int offset) {
+        checkThread();
+        mgl11.glGetTexParameteriv(target, pname, params, offset);
+        checkError();
+    }
+
+    public void glGetTexParameteriv(int target, int pname, IntBuffer params) {
+        checkThread();
+        mgl11.glGetTexParameteriv(target, pname, params);
+        checkError();
+    }
+
+    public void glGetTexParameterxv(int target, int pname, int[] params,
+            int offset) {
+        checkThread();
+        mgl11.glGetTexParameterxv(target, pname, params, offset);
+        checkError();
+    }
+
+    public void glGetTexParameterxv(int target, int pname, IntBuffer params) {
+        checkThread();
+        mgl11.glGetTexParameterxv(target, pname, params);
+        checkError();
+    }
+
+    public boolean glIsBuffer(int buffer) {
+        checkThread();
+        boolean valid = mgl11.glIsBuffer(buffer);
+        checkError();
+        return valid;
+    }
+
+    public boolean glIsEnabled(int cap) {
+        checkThread();
+        boolean valid = mgl11.glIsEnabled(cap);
+        checkError();
+        return valid;
+    }
+
+    public boolean glIsTexture(int texture) {
+        checkThread();
+        boolean valid = mgl11.glIsTexture(texture);
+        checkError();
+        return valid;
+    }
+
+    public void glNormalPointer(int type, int stride, int offset) {
+        checkThread();
+        mgl11.glNormalPointer(type, stride, offset);
+        checkError();
+    }
+
+    public void glPointParameterf(int pname, float param) {
+        checkThread();
+        mgl11.glPointParameterf(pname, param);
+        checkError();
+    }
+
+    public void glPointParameterfv(int pname, float[] params, int offset) {
+        checkThread();
+        mgl11.glPointParameterfv(pname, params, offset);
+        checkError();
+    }
+
+    public void glPointParameterfv(int pname, FloatBuffer params) {
+        checkThread();
+        mgl11.glPointParameterfv(pname, params);
+        checkError();
+    }
+
+    public void glPointParameterx(int pname, int param) {
+        checkThread();
+        mgl11.glPointParameterx(pname, param);
+        checkError();
+    }
+
+    public void glPointParameterxv(int pname, int[] params, int offset) {
+        checkThread();
+        mgl11.glPointParameterxv(pname, params, offset);
+        checkError();
+    }
+
+    public void glPointParameterxv(int pname, IntBuffer params) {
+        checkThread();
+        mgl11.glPointParameterxv(pname, params);
+        checkError();
+    }
+
+    public void glPointSizePointerOES(int type, int stride, Buffer pointer) {
+        checkThread();
+        mgl11.glPointSizePointerOES(type, stride, pointer);
+        checkError();
+    }
+
+    public void glTexCoordPointer(int size, int type, int stride, int offset) {
+        checkThread();
+        mgl11.glTexCoordPointer(size, type, stride, offset);
+        checkError();
+    }
+
+    public void glTexEnvi(int target, int pname, int param) {
+        checkThread();
+        mgl11.glTexEnvi(target, pname, param);
+        checkError();
+    }
+
+    public void glTexEnviv(int target, int pname, int[] params, int offset) {
+        checkThread();
+        mgl11.glTexEnviv(target, pname, params, offset);
+        checkError();
+    }
+
+    public void glTexEnviv(int target, int pname, IntBuffer params) {
+        checkThread();
+        mgl11.glTexEnviv(target, pname, params);
+        checkError();
+    }
+
+    public void glTexParameterfv(int target, int pname, float[] params,
+            int offset) {
+        checkThread();
+        mgl11.glTexParameterfv(target, pname, params, offset);
+        checkError();
+    }
+
+    public void glTexParameterfv(int target, int pname, FloatBuffer params) {
+        checkThread();
+        mgl11.glTexParameterfv(target, pname, params);
+        checkError();
+    }
+
+    public void glTexParameteri(int target, int pname, int param) {
+        checkThread();
+        mgl11.glTexParameteri(target, pname, param);
+        checkError();
+    }
+
+    public void glTexParameterxv(int target, int pname, int[] params, int offset) {
+        checkThread();
+        mgl11.glTexParameterxv(target, pname, params, offset);
+        checkError();
+    }
+
+    public void glTexParameterxv(int target, int pname, IntBuffer params) {
+        checkThread();
+        mgl11.glTexParameterxv(target, pname, params);
+        checkError();
+    }
+
+    public void glVertexPointer(int size, int type, int stride, int offset) {
+        checkThread();
+        mgl11.glVertexPointer(size, type, stride, offset);
+        checkError();
+    }
+
+    public void glCurrentPaletteMatrixOES(int matrixpaletteindex) {
+        checkThread();
+        mgl11Ext.glCurrentPaletteMatrixOES(matrixpaletteindex);
+        checkError();
+    }
+
+    public void glLoadPaletteFromModelViewMatrixOES() {
+        checkThread();
+        mgl11Ext.glLoadPaletteFromModelViewMatrixOES();
+        checkError();
+    }
+
+    public void glMatrixIndexPointerOES(int size, int type, int stride,
+            Buffer pointer) {
+        checkThread();
+        mgl11Ext.glMatrixIndexPointerOES(size, type, stride, pointer);
+        checkError();
+    }
+
+    public void glMatrixIndexPointerOES(int size, int type, int stride,
+            int offset) {
+        checkThread();
+        mgl11Ext.glMatrixIndexPointerOES(size, type, stride, offset);
+        checkError();
+    }
+
+    public void glWeightPointerOES(int size, int type, int stride,
+            Buffer pointer) {
+        checkThread();
+        mgl11Ext.glWeightPointerOES(size, type, stride, pointer);
+        checkError();
+    }
+
+    public void glWeightPointerOES(int size, int type, int stride, int offset) {
+        checkThread();
+        mgl11Ext.glWeightPointerOES(size, type, stride, offset);
+        checkError();
+    }
+
+
 }
diff --git a/opengl/java/android/opengl/GLLogWrapper.java b/opengl/java/android/opengl/GLLogWrapper.java
index f332448..97a6424 100644
--- a/opengl/java/android/opengl/GLLogWrapper.java
+++ b/opengl/java/android/opengl/GLLogWrapper.java
@@ -2767,230 +2767,684 @@
         return valid;
     }
 
-    // Unsupported GL11 methods
-
     public void glBindBuffer(int target, int buffer) {
-        throw new UnsupportedOperationException();
+        begin("glBindBuffer");
+        arg("target", target);
+        arg("buffer", buffer);
+        end();
+        mgl11.glBindBuffer(target, buffer);
+        checkError();
     }
 
     public void glBufferData(int target, int size, Buffer data, int usage) {
-        throw new UnsupportedOperationException();
+        begin("glBufferData");
+        arg("target", target);
+        arg("size", size);
+        arg("data", data.toString());
+        arg("usage", usage);
+        end();
+        mgl11.glBufferData(target, size, data, usage);
+        checkError();
     }
 
     public void glBufferSubData(int target, int offset, int size, Buffer data) {
-        throw new UnsupportedOperationException();
+        begin("glBufferSubData");
+        arg("target", target);
+        arg("offset", offset);
+        arg("size", size);
+        arg("data", data.toString());
+        end();
+        mgl11.glBufferSubData(target, offset, size, data);
+        checkError();
     }
 
     public void glColor4ub(byte red, byte green, byte blue, byte alpha) {
-        throw new UnsupportedOperationException();
+        begin("glColor4ub");
+        arg("red", red);
+        arg("green", green);
+        arg("blue", blue);
+        arg("alpha", alpha);
+        end();
+        mgl11.glColor4ub(red, green, blue, alpha);
+        checkError();
     }
 
     public void glDeleteBuffers(int n, int[] buffers, int offset) {
-        throw new UnsupportedOperationException();
+        begin("glDeleteBuffers");
+        arg("n", n);
+        arg("buffers", buffers.toString());
+        arg("offset", offset);
+        end();
+        mgl11.glDeleteBuffers(n, buffers, offset);
+        checkError();
     }
 
     public void glDeleteBuffers(int n, IntBuffer buffers) {
-        throw new UnsupportedOperationException();
+        begin("glDeleteBuffers");
+        arg("n", n);
+        arg("buffers", buffers.toString());
+        end();
+        mgl11.glDeleteBuffers(n, buffers);
+        checkError();
     }
 
     public void glGenBuffers(int n, int[] buffers, int offset) {
-        throw new UnsupportedOperationException();
+        begin("glGenBuffers");
+        arg("n", n);
+        arg("buffers", buffers.toString());
+        arg("offset", offset);
+        end();
+        mgl11.glGenBuffers(n, buffers, offset);
+        checkError();
     }
 
     public void glGenBuffers(int n, IntBuffer buffers) {
-        throw new UnsupportedOperationException();
+        begin("glGenBuffers");
+        arg("n", n);
+        arg("buffers", buffers.toString());
+        end();
+        mgl11.glGenBuffers(n, buffers);
+        checkError();
     }
 
     public void glGetBooleanv(int pname, boolean[] params, int offset) {
-        throw new UnsupportedOperationException();
+        begin("glGetBooleanv");
+        arg("pname", pname);
+        arg("params", params.toString());
+        arg("offset", offset);
+        end();
+        mgl11.glGetBooleanv(pname, params, offset);
+        checkError();
     }
 
     public void glGetBooleanv(int pname, IntBuffer params) {
-        throw new UnsupportedOperationException();
+        begin("glGetBooleanv");
+        arg("pname", pname);
+        arg("params", params.toString());
+        end();
+        mgl11.glGetBooleanv(pname, params);
+        checkError();
     }
 
-    public void glGetBufferParameteriv(int target, int pname, int[] params, int offset) {
-        throw new UnsupportedOperationException();
+    public void glGetBufferParameteriv(int target, int pname, int[] params,
+            int offset) {
+        begin("glGetBufferParameteriv");
+        arg("target", target);
+        arg("pname", pname);
+        arg("params", params.toString());
+        arg("offset", offset);
+        end();
+        mgl11.glGetBufferParameteriv(target, pname, params, offset);
+        checkError();
     }
 
     public void glGetBufferParameteriv(int target, int pname, IntBuffer params) {
-        throw new UnsupportedOperationException();
+        begin("glGetBufferParameteriv");
+        arg("target", target);
+        arg("pname", pname);
+        arg("params", params.toString());
+        end();
+        mgl11.glGetBufferParameteriv(target, pname, params);
+        checkError();
     }
 
     public void glGetClipPlanef(int pname, float[] eqn, int offset) {
-        throw new UnsupportedOperationException();
+        begin("glGetClipPlanef");
+        arg("pname", pname);
+        arg("eqn", eqn.toString());
+        arg("offset", offset);
+        end();
+        mgl11.glGetClipPlanef(pname, eqn, offset);
+        checkError();
     }
 
     public void glGetClipPlanef(int pname, FloatBuffer eqn) {
-        throw new UnsupportedOperationException();
+        begin("glGetClipPlanef");
+        arg("pname", pname);
+        arg("eqn", eqn.toString());
+        end();
+        mgl11.glGetClipPlanef(pname, eqn);
+        checkError();
     }
 
     public void glGetClipPlanex(int pname, int[] eqn, int offset) {
-        throw new UnsupportedOperationException();
+        begin("glGetClipPlanex");
+        arg("pname", pname);
+        arg("eqn", eqn.toString());
+        arg("offset", offset);
+        end();
+        mgl11.glGetClipPlanex(pname, eqn, offset);
     }
 
     public void glGetClipPlanex(int pname, IntBuffer eqn) {
-        throw new UnsupportedOperationException();
+        begin("glGetClipPlanex");
+        arg("pname", pname);
+        arg("eqn", eqn.toString());
+        end();
+        mgl11.glGetClipPlanex(pname, eqn);
+        checkError();
     }
 
     public void glGetFixedv(int pname, int[] params, int offset) {
-        throw new UnsupportedOperationException();
+        begin("glGetFixedv");
+        arg("pname", pname);
+        arg("params", params.toString());
+        arg("offset", offset);
+        end();
+        mgl11.glGetFixedv(pname, params, offset);
     }
 
     public void glGetFixedv(int pname, IntBuffer params) {
-        throw new UnsupportedOperationException();
+        begin("glGetFixedv");
+        arg("pname", pname);
+        arg("params", params.toString());
+        end();
+        mgl11.glGetFixedv(pname, params);
+        checkError();
     }
 
     public void glGetFloatv(int pname, float[] params, int offset) {
-        throw new UnsupportedOperationException();
+        begin("glGetFloatv");
+        arg("pname", pname);
+        arg("params", params.toString());
+        arg("offset", offset);
+        end();
+        mgl11.glGetFloatv(pname, params, offset);
     }
 
     public void glGetFloatv(int pname, FloatBuffer params) {
-        throw new UnsupportedOperationException();
+        begin("glGetFloatv");
+        arg("pname", pname);
+        arg("params", params.toString());
+        end();
+        mgl11.glGetFloatv(pname, params);
+        checkError();
     }
 
     public void glGetLightfv(int light, int pname, float[] params, int offset) {
-        throw new UnsupportedOperationException();
+        begin("glGetLightfv");
+        arg("light", light);
+        arg("pname", pname);
+        arg("params", params.toString());
+        arg("offset", offset);
+        end();
+        mgl11.glGetLightfv(light, pname, params, offset);
+        checkError();
     }
 
     public void glGetLightfv(int light, int pname, FloatBuffer params) {
-        throw new UnsupportedOperationException();
+        begin("glGetLightfv");
+        arg("light", light);
+        arg("pname", pname);
+        arg("params", params.toString());
+        end();
+        mgl11.glGetLightfv(light, pname, params);
+        checkError();
     }
 
     public void glGetLightxv(int light, int pname, int[] params, int offset) {
-        throw new UnsupportedOperationException();
+        begin("glGetLightxv");
+        arg("light", light);
+        arg("pname", pname);
+        arg("params", params.toString());
+        arg("offset", offset);
+        end();
+        mgl11.glGetLightxv(light, pname, params, offset);
+        checkError();
     }
 
     public void glGetLightxv(int light, int pname, IntBuffer params) {
-        throw new UnsupportedOperationException();
+        begin("glGetLightxv");
+        arg("light", light);
+        arg("pname", pname);
+        arg("params", params.toString());
+        end();
+        mgl11.glGetLightxv(light, pname, params);
+        checkError();
     }
 
-    public void glGetMaterialfv(int face, int pname, float[] params, int offset) {
-        throw new UnsupportedOperationException();
+    public void glGetMaterialfv(int face, int pname, float[] params,
+            int offset) {
+        begin("glGetMaterialfv");
+        arg("face", face);
+        arg("pname", pname);
+        arg("params", params.toString());
+        arg("offset", offset);
+        end();
+        mgl11.glGetMaterialfv(face, pname, params, offset);
+        checkError();
     }
 
     public void glGetMaterialfv(int face, int pname, FloatBuffer params) {
-        throw new UnsupportedOperationException();
+        begin("glGetMaterialfv");
+        arg("face", face);
+        arg("pname", pname);
+        arg("params", params.toString());
+        end();
+        mgl11.glGetMaterialfv(face, pname, params);
+        checkError();
     }
 
     public void glGetMaterialxv(int face, int pname, int[] params, int offset) {
-        throw new UnsupportedOperationException();
+        begin("glGetMaterialxv");
+        arg("face", face);
+        arg("pname", pname);
+        arg("params", params.toString());
+        arg("offset", offset);
+        end();
+        mgl11.glGetMaterialxv(face, pname, params, offset);
+        checkError();
     }
 
     public void glGetMaterialxv(int face, int pname, IntBuffer params) {
-        throw new UnsupportedOperationException();
+        begin("glGetMaterialxv");
+        arg("face", face);
+        arg("pname", pname);
+        arg("params", params.toString());
+        end();
+        mgl11.glGetMaterialxv(face, pname, params);
+        checkError();
     }
 
     public void glGetTexEnviv(int env, int pname, int[] params, int offset) {
-        throw new UnsupportedOperationException();
+        begin("glGetTexEnviv");
+        arg("env", env);
+        arg("pname", pname);
+        arg("params", params.toString());
+        arg("offset", offset);
+        end();
+        mgl11.glGetTexEnviv(env, pname, params, offset);
+        checkError();
     }
 
     public void glGetTexEnviv(int env, int pname, IntBuffer params) {
-        throw new UnsupportedOperationException();
+        begin("glGetTexEnviv");
+        arg("env", env);
+        arg("pname", pname);
+        arg("params", params.toString());
+        end();
+        mgl11.glGetTexEnviv(env, pname, params);
+        checkError();
     }
 
     public void glGetTexEnvxv(int env, int pname, int[] params, int offset) {
-        throw new UnsupportedOperationException();
+        begin("glGetTexEnviv");
+        arg("env", env);
+        arg("pname", pname);
+        arg("params", params.toString());
+        arg("offset", offset);
+        end();
+        mgl11.glGetTexEnviv(env, pname, params, offset);
+        checkError();
     }
 
     public void glGetTexEnvxv(int env, int pname, IntBuffer params) {
-        throw new UnsupportedOperationException();
+        begin("glGetTexEnviv");
+        arg("env", env);
+        arg("pname", pname);
+        arg("params", params.toString());
+        end();
+        mgl11.glGetTexEnvxv(env, pname, params);
+        checkError();
     }
 
     public void glGetTexParameterfv(int target, int pname, float[] params, int offset) {
-        throw new UnsupportedOperationException();
+        begin("glGetTexParameterfv");
+        arg("target", target);
+        arg("pname", pname);
+        arg("params", params.toString());
+        arg("offset", offset);
+        end();
+        mgl11.glGetTexParameterfv(target, pname, params, offset);
+        checkError();
     }
 
     public void glGetTexParameterfv(int target, int pname, FloatBuffer params) {
-        throw new UnsupportedOperationException();
+        begin("glGetTexParameterfv");
+        arg("target", target);
+        arg("pname", pname);
+        arg("params", params.toString());
+        end();
+        mgl11.glGetTexParameterfv(target, pname, params);
+        checkError();
     }
 
     public void glGetTexParameteriv(int target, int pname, int[] params, int offset) {
-        throw new UnsupportedOperationException();
+        begin("glGetTexParameteriv");
+        arg("target", target);
+        arg("pname", pname);
+        arg("params", params.toString());
+        arg("offset", offset);
+        end();
+        mgl11.glGetTexEnviv(target, pname, params, offset);
+        checkError();
     }
 
     public void glGetTexParameteriv(int target, int pname, IntBuffer params) {
-        throw new UnsupportedOperationException();
+        begin("glGetTexParameteriv");
+        arg("target", target);
+        arg("pname", pname);
+        arg("params", params.toString());
+        end();
+        mgl11.glGetTexParameteriv(target, pname, params);
+        checkError();
     }
 
-    public void glGetTexParameterxv(int target, int pname, int[] params, int offset) {
-        throw new UnsupportedOperationException();
+    public void glGetTexParameterxv(int target, int pname, int[] params,
+            int offset) {
+        begin("glGetTexParameterxv");
+        arg("target", target);
+        arg("pname", pname);
+        arg("params", params.toString());
+        arg("offset", offset);
+        end();
+        mgl11.glGetTexParameterxv(target, pname, params, offset);
+        checkError();
     }
 
     public void glGetTexParameterxv(int target, int pname, IntBuffer params) {
-        throw new UnsupportedOperationException();
+        begin("glGetTexParameterxv");
+        arg("target", target);
+        arg("pname", pname);
+        arg("params", params.toString());
+        end();
+        mgl11.glGetTexParameterxv(target, pname, params);
+        checkError();
     }
 
     public boolean glIsBuffer(int buffer) {
-        throw new UnsupportedOperationException();
+        begin("glIsBuffer");
+        arg("buffer", buffer);
+        end();
+        boolean result = mgl11.glIsBuffer(buffer);
+        checkError();
+        return result;
     }
 
     public boolean glIsEnabled(int cap) {
-        throw new UnsupportedOperationException();
+        begin("glIsEnabled");
+        arg("cap", cap);
+        end();
+        boolean result = mgl11.glIsEnabled(cap);
+        checkError();
+        return result;
     }
 
     public boolean glIsTexture(int texture) {
-        throw new UnsupportedOperationException();
+        begin("glIsTexture");
+        arg("texture", texture);
+        end();
+        boolean result = mgl11.glIsTexture(texture);
+        checkError();
+        return result;
     }
 
     public void glPointParameterf(int pname, float param) {
-        throw new UnsupportedOperationException();
+        begin("glPointParameterf");
+        arg("pname", pname);
+        arg("param", param);
+        end();
+        mgl11.glPointParameterf( pname, param);
+        checkError();
     }
 
     public void glPointParameterfv(int pname, float[] params, int offset) {
-        throw new UnsupportedOperationException();
+        begin("glPointParameterfv");
+        arg("pname", pname);
+        arg("params", params.toString());
+        arg("offset", offset);
+        end();
+        mgl11.glPointParameterfv(pname, params, offset);
+        checkError();
     }
 
     public void glPointParameterfv(int pname, FloatBuffer params) {
-        throw new UnsupportedOperationException();
+        begin("glPointParameterfv");
+        arg("pname", pname);
+        arg("params", params.toString());
+        end();
+        mgl11.glPointParameterfv(pname, params);
+        checkError();
     }
 
     public void glPointParameterx(int pname, int param) {
-        throw new UnsupportedOperationException();
+        begin("glPointParameterfv");
+        arg("pname", pname);
+        arg("param", param);
+        end();
+        mgl11.glPointParameterx( pname, param);
+        checkError();
     }
 
     public void glPointParameterxv(int pname, int[] params, int offset) {
-        throw new UnsupportedOperationException();
+        begin("glPointParameterxv");
+        arg("pname", pname);
+        arg("params", params.toString());
+        arg("offset", offset);
+        end();
+        mgl11.glPointParameterxv(pname, params, offset);
+        checkError();
     }
 
     public void glPointParameterxv(int pname, IntBuffer params) {
-        throw new UnsupportedOperationException();
+        begin("glPointParameterxv");
+        arg("pname", pname);
+        arg("params", params.toString());
+        end();
+        mgl11.glPointParameterxv( pname, params);
+        checkError();
     }
 
     public void glPointSizePointerOES(int type, int stride, Buffer pointer) {
-        throw new UnsupportedOperationException();
+        begin("glPointSizePointerOES");
+        arg("type", type);
+        arg("stride", stride);
+        arg("params", pointer.toString());
+        end();
+        mgl11.glPointSizePointerOES( type, stride, pointer);
+        checkError();
     }
 
     public void glTexEnvi(int target, int pname, int param) {
-        throw new UnsupportedOperationException();
+        begin("glTexEnvi");
+        arg("target", target);
+        arg("pname", pname);
+        arg("param", param);
+        end();
+        mgl11.glTexEnvi(target, pname, param);
+        checkError();
     }
 
     public void glTexEnviv(int target, int pname, int[] params, int offset) {
-        throw new UnsupportedOperationException();
+        begin("glTexEnviv");
+        arg("target", target);
+        arg("pname", pname);
+        arg("params", params.toString());
+        arg("offset", offset);
+        end();
+        mgl11.glTexEnviv(target, pname, params, offset);
+        checkError();
     }
 
     public void glTexEnviv(int target, int pname, IntBuffer params) {
-        throw new UnsupportedOperationException();
+        begin("glTexEnviv");
+        arg("target", target);
+        arg("pname", pname);
+        arg("params", params.toString());
+        end();
+        mgl11.glTexEnviv( target, pname, params);
+        checkError();
     }
 
-    public void glTexParameterfv(int target, int pname, float[] params, int offset) {
-        throw new UnsupportedOperationException();
+    public void glTexParameterfv(int target, int pname, float[] params,
+            int offset) {
+        begin("glTexParameterfv");
+        arg("target", target);
+        arg("pname", pname);
+        arg("params", params.toString());
+        arg("offset", offset);
+        end();
+        mgl11.glTexParameterfv( target, pname, params, offset);
+        checkError();
     }
 
     public void glTexParameterfv(int target, int pname, FloatBuffer params) {
-        throw new UnsupportedOperationException();
+        begin("glTexParameterfv");
+        arg("target", target);
+        arg("pname", pname);
+        arg("params", params.toString());
+        end();
+        mgl11.glTexParameterfv(target, pname, params);
+        checkError();
     }
 
     public void glTexParameteri(int target, int pname, int param) {
-        throw new UnsupportedOperationException();
+        begin("glTexParameterxv");
+        arg("target", target);
+        arg("pname", pname);
+        arg("param", param);
+        end();
+        mgl11.glTexParameteri(target, pname, param);
+        checkError();
     }
 
-    public void glTexParameterxv(int target, int pname, int[] params, int offset) {
-        throw new UnsupportedOperationException();
+    public void glTexParameterxv(int target, int pname, int[] params,
+            int offset) {
+        begin("glTexParameterxv");
+        arg("target", target);
+        arg("pname", pname);
+        arg("params", params.toString());
+        arg("offset", offset);
+        end();
+        mgl11.glTexParameterxv(target, pname, params, offset);
+        checkError();
     }
 
     public void glTexParameterxv(int target, int pname, IntBuffer params) {
-        throw new UnsupportedOperationException();
+        begin("glTexParameterxv");
+        arg("target", target);
+        arg("pname", pname);
+        arg("params", params.toString());
+        end();
+        mgl11.glTexParameterxv(target, pname, params);
+        checkError();
+    }
+
+
+    public void glColorPointer(int size, int type, int stride, int offset) {
+        begin("glColorPointer");
+        arg("size", size);
+        arg("type", type);
+        arg("stride", stride);
+        arg("offset", offset);
+        end();
+        mgl11.glColorPointer(size, type, stride, offset);
+        checkError();
+    }
+
+    public void glDrawElements(int mode, int count, int type, int offset) {
+        begin("glDrawElements");
+        arg("mode", mode);
+        arg("count", count);
+        arg("type", type);
+        arg("offset", offset);
+        end();
+        mgl11.glDrawElements(mode, count, type, offset);
+        checkError();
+    }
+
+    public void glGetPointerv(int pname, Buffer[] params) {
+        begin("glGetPointerv");
+        arg("pname", pname);
+        arg("params", params.toString());
+        end();
+        mgl11.glGetPointerv(pname, params);
+        checkError();
+    }
+
+    public void glNormalPointer(int type, int stride, int offset) {
+        begin("glNormalPointer");
+        arg("type", type);
+        arg("stride", stride);
+        arg("offset", offset);
+        end();
+        mgl11.glNormalPointer(type, stride, offset);
+    }
+
+    public void glTexCoordPointer(int size, int type, int stride, int offset) {
+        begin("glTexCoordPointer");
+        arg("size", size);
+        arg("type", type);
+        arg("stride", stride);
+        arg("offset", offset);
+        end();
+        mgl11.glTexCoordPointer(size, type, stride, offset);
+    }
+
+    public void glVertexPointer(int size, int type, int stride, int offset) {
+        begin("glVertexPointer");
+        arg("size", size);
+        arg("type", type);
+        arg("stride", stride);
+        arg("offset", offset);
+        end();
+        mgl11.glVertexPointer(size, type, stride, offset);
+    }
+
+    public void glCurrentPaletteMatrixOES(int matrixpaletteindex) {
+        begin("glCurrentPaletteMatrixOES");
+        arg("matrixpaletteindex", matrixpaletteindex);
+        end();
+        mgl11Ext.glCurrentPaletteMatrixOES(matrixpaletteindex);
+        checkError();
+    }
+
+    public void glLoadPaletteFromModelViewMatrixOES() {
+        begin("glLoadPaletteFromModelViewMatrixOES");
+        end();
+        mgl11Ext.glLoadPaletteFromModelViewMatrixOES();
+        checkError();
+    }
+
+    public void glMatrixIndexPointerOES(int size, int type, int stride,
+            Buffer pointer) {
+        begin("glMatrixIndexPointerOES");
+        argPointer(size, type, stride, pointer);
+        end();
+        mgl11Ext.glMatrixIndexPointerOES(size, type, stride, pointer);
+        checkError();
+    }
+
+    public void glMatrixIndexPointerOES(int size, int type, int stride,
+            int offset) {
+        begin("glMatrixIndexPointerOES");
+        arg("size", size);
+        arg("type", type);
+        arg("stride", stride);
+        arg("offset", offset);
+        end();
+        mgl11Ext.glMatrixIndexPointerOES(size, type, stride, offset);
+        checkError();
+    }
+
+    public void glWeightPointerOES(int size, int type, int stride,
+            Buffer pointer) {
+        begin("glWeightPointerOES");
+        argPointer(size, type, stride, pointer);
+        end();
+        mgl11Ext.glWeightPointerOES(size, type, stride, pointer);
+        checkError();
+    }
+
+    public void glWeightPointerOES(int size, int type, int stride, int offset) {
+        begin("glWeightPointerOES");
+        arg("size", size);
+        arg("type", type);
+        arg("stride", stride);
+        arg("offset", offset);
+        end();
+        mgl11Ext.glWeightPointerOES(size, type, stride, offset);
+        checkError();
     }
 
     private class PointerInfo {
diff --git a/opengl/java/android/opengl/GLWrapperBase.java b/opengl/java/android/opengl/GLWrapperBase.java
index 067f95f..b0f83f7 100644
--- a/opengl/java/android/opengl/GLWrapperBase.java
+++ b/opengl/java/android/opengl/GLWrapperBase.java
@@ -16,9 +16,6 @@
 
 package android.opengl;
 
-import java.nio.Buffer;
-import java.nio.FloatBuffer;
-import java.nio.IntBuffer;
 import javax.microedition.khronos.opengles.GL;
 import javax.microedition.khronos.opengles.GL10;
 import javax.microedition.khronos.opengles.GL10Ext;
@@ -32,464 +29,25 @@
  */
 abstract class GLWrapperBase
     implements GL, GL10, GL10Ext, GL11, GL11Ext {
-	public GLWrapperBase(GL gl) {
-		mgl = (GL10) gl;
-		if (gl instanceof GL10Ext) {
-			mgl10Ext = (GL10Ext) gl;
-		}
-		if (gl instanceof GL11) {
-			mgl11 = (GL11) gl;
-		}
-		if (gl instanceof GL11Ext) {
-			mgl11Ext = (GL11Ext) gl;
-		}
-		if (gl instanceof GL11ExtensionPack) {
-			mgl11ExtensionPack = (GL11ExtensionPack) gl;
-		}
-	}
-	
-	protected GL10 mgl;
-	protected GL10Ext mgl10Ext;
-	protected GL11 mgl11;
-	protected GL11Ext mgl11Ext;
-	protected GL11ExtensionPack mgl11ExtensionPack;
-
-    // Unsupported GL11 methods
-
-    public void glGetPointerv(int pname, java.nio.Buffer[] params) {
-        throw new UnsupportedOperationException();
+    public GLWrapperBase(GL gl) {
+        mgl = (GL10) gl;
+        if (gl instanceof GL10Ext) {
+            mgl10Ext = (GL10Ext) gl;
+        }
+        if (gl instanceof GL11) {
+            mgl11 = (GL11) gl;
+        }
+        if (gl instanceof GL11Ext) {
+            mgl11Ext = (GL11Ext) gl;
+        }
+        if (gl instanceof GL11ExtensionPack) {
+            mgl11ExtensionPack = (GL11ExtensionPack) gl;
+        }
     }
 
-    // VBO versions of *Pointer and *Elements methods
-    public void glColorPointer(int size, int type, int stride, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glNormalPointer(int type, int stride, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glTexCoordPointer(int size, int type, int stride, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glVertexPointer(int size, int type, int stride, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glDrawElements(int mode, int count, int type, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glBindBuffer(int target, int buffer) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glBufferData(int target, int size, Buffer data, int usage) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glBufferSubData(int target, int offset, int size, Buffer data) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glColor4ub(byte red, byte green, byte blue, byte alpha) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glDeleteBuffers(int n, int[] buffers, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glDeleteBuffers(int n, IntBuffer buffers) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGenBuffers(int n, int[] buffers, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGenBuffers(int n, IntBuffer buffers) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetBooleanv(int pname, boolean[] params, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetBooleanv(int pname, IntBuffer params) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetBufferParameteriv(int target, int pname, int[] params, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetBufferParameteriv(int target, int pname, IntBuffer params) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetClipPlanef(int pname, float[] eqn, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetClipPlanef(int pname, FloatBuffer eqn) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetClipPlanex(int pname, int[] eqn, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetClipPlanex(int pname, IntBuffer eqn) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetFixedv(int pname, int[] params, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetFixedv(int pname, IntBuffer params) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetFloatv(int pname, float[] params, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetFloatv(int pname, FloatBuffer params) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetLightfv(int light, int pname, float[] params, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetLightfv(int light, int pname, FloatBuffer params) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetLightxv(int light, int pname, int[] params, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetLightxv(int light, int pname, IntBuffer params) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetMaterialfv(int face, int pname, float[] params, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetMaterialfv(int face, int pname, FloatBuffer params) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetMaterialxv(int face, int pname, int[] params, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetMaterialxv(int face, int pname, IntBuffer params) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetTexEnviv(int env, int pname, int[] params, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetTexEnviv(int env, int pname, IntBuffer params) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetTexEnvxv(int env, int pname, int[] params, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetTexEnvxv(int env, int pname, IntBuffer params) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetTexParameterfv(int target, int pname, float[] params, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetTexParameterfv(int target, int pname, FloatBuffer params) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetTexParameteriv(int target, int pname, int[] params, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetTexParameteriv(int target, int pname, IntBuffer params) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetTexParameterxv(int target, int pname, int[] params, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetTexParameterxv(int target, int pname, IntBuffer params) {
-        throw new UnsupportedOperationException();
-    }
-
-    public boolean glIsBuffer(int buffer) {
-        throw new UnsupportedOperationException();
-    }
-
-    public boolean glIsEnabled(int cap) {
-        throw new UnsupportedOperationException();
-    }
-
-    public boolean glIsTexture(int texture) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glPointParameterf(int pname, float param) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glPointParameterfv(int pname, float[] params, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glPointParameterfv(int pname, FloatBuffer params) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glPointParameterx(int pname, int param) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glPointParameterxv(int pname, int[] params, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glPointParameterxv(int pname, IntBuffer params) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glPointSizePointerOES(int type, int stride, Buffer pointer) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glTexEnvi(int target, int pname, int param) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glTexEnviv(int target, int pname, int[] params, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glTexEnviv(int target, int pname, IntBuffer params) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glTexParameterfv(int target, int pname, float[] params, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glTexParameterfv(int target, int pname, FloatBuffer params) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glTexParameteri(int target, int pname, int param) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glTexParameterxv(int target, int pname, int[] params, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glTexParameterxv(int target, int pname, IntBuffer params) {
-        throw new UnsupportedOperationException();
-    }
-
-    // Unsupported GL11Ext methods
-
-    public void glCurrentPaletteMatrixOES(int matrixpaletteindex) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glLoadPaletteFromModelViewMatrixOES() {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glMatrixIndexPointerOES(int size, int type, int stride, Buffer pointer) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glMatrixIndexPointerOES(int size, int type, int stride, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glWeightPointerOES(int size, int type, int stride, Buffer pointer) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glWeightPointerOES(int size, int type, int stride, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    // Unsupported GL11ExtensionPack methods
-
-    public void glBindFramebufferOES(int target, int framebuffer) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glBindRenderbufferOES(int target, int renderbuffer) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glBlendEquation(int mode) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glBlendEquationSeparate(int modeRGB, int modeAlpha) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glBlendFuncSeparate(int srcRGB, int dstRGB, int srcAlpha, int dstAlpha) {
-        throw new UnsupportedOperationException();
-    }
-
-    int glCheckFramebufferStatusOES(int target) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glCompressedTexImage2D(int target, int level, int internalformat, int width, int height, int border, int imageSize) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glDeleteFramebuffersOES(int n, int[] framebuffers, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glDeleteFramebuffersOES(int n, java.nio.IntBuffer framebuffers) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glDeleteRenderbuffersOES(int n, int[] renderbuffers, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glDeleteRenderbuffersOES(int n, java.nio.IntBuffer renderbuffers) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glFramebufferRenderbufferOES(int target, int attachment, int renderbuffertarget, int renderbuffer) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glFramebufferTexture2DOES(int target, int attachment, int textarget, int texture, int level) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGenerateMipmapOES(int target) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGenFramebuffersOES(int n, int[] framebuffers, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGenFramebuffersOES(int n, java.nio.IntBuffer framebuffers) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGenRenderbuffersOES(int n, int[] renderbuffers, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGenRenderbuffersOES(int n, java.nio.IntBuffer renderbuffers) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetFramebufferAttachmentParameterivOES(int target, int attachment, int pname, int[] params, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetFramebufferAttachmentParameterivOES(int target, int attachment, int pname, java.nio.IntBuffer params) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetRenderbufferParameterivOES(int target, int pname, int[] params, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetRenderbufferParameterivOES(int target, int pname, java.nio.IntBuffer params) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetTexGenfv(int coord, int pname, float[] params, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetTexGenfv(int coord, int pname, java.nio.FloatBuffer params) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetTexGeniv(int coord, int pname, int[] params, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetTexGeniv(int coord, int pname, java.nio.IntBuffer params) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetTexGenxv(int coord, int pname, int[] params, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glGetTexGenxv(int coord, int pname, java.nio.IntBuffer params) {
-        throw new UnsupportedOperationException();
-    }
-
-    public boolean glIsFramebufferOES(int framebuffer) {
-        throw new UnsupportedOperationException();
-    }
-
-    public boolean glIsRenderbufferOES(int renderbuffer) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glRenderbufferStorageOES(int target, int internalformat, int width, int height) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glTexGenf(int coord, int pname, float param) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glTexGenfv(int coord, int pname, float[] params, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glTexGenfv(int coord, int pname, java.nio.FloatBuffer params) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glTexGeni(int coord, int pname, int param) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glTexGeniv(int coord, int pname, int[] params, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glTexGeniv(int coord, int pname, java.nio.IntBuffer params) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glTexGenx(int coord, int pname, int param) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glTexGenxv(int coord, int pname, int[] params, int offset) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void glTexGenxv(int coord, int pname, java.nio.IntBuffer params) {
-        throw new UnsupportedOperationException();
-    }
+    protected GL10 mgl;
+    protected GL10Ext mgl10Ext;
+    protected GL11 mgl11;
+    protected GL11Ext mgl11Ext;
+    protected GL11ExtensionPack mgl11ExtensionPack;
 }
diff --git a/opengl/tests/fillrate/Android.mk b/opengl/tests/fillrate/Android.mk
index a7d30c2..191c59b 100644
--- a/opengl/tests/fillrate/Android.mk
+++ b/opengl/tests/fillrate/Android.mk
@@ -6,6 +6,7 @@
 
 LOCAL_SHARED_LIBRARIES := \
 	libcutils \
+	libutils \
     libEGL \
     libGLESv1_CM \
     libui
diff --git a/opengl/tests/finish/Android.mk b/opengl/tests/finish/Android.mk
index 5620814..aa607c6 100644
--- a/opengl/tests/finish/Android.mk
+++ b/opengl/tests/finish/Android.mk
@@ -6,6 +6,7 @@
 
 LOCAL_SHARED_LIBRARIES := \
 	libcutils \
+	libutils \
     libEGL \
     libGLESv1_CM \
     libui
diff --git a/opengl/tests/swapinterval/Android.mk b/opengl/tests/swapinterval/Android.mk
index 619447c..9a4145e 100644
--- a/opengl/tests/swapinterval/Android.mk
+++ b/opengl/tests/swapinterval/Android.mk
@@ -6,6 +6,7 @@
 
 LOCAL_SHARED_LIBRARIES := \
 	libcutils \
+	libutils \
     libEGL \
     libGLESv1_CM \
     libui
diff --git a/packages/TtsService/src/android/tts/TtsService.java b/packages/TtsService/src/android/tts/TtsService.java
index 217d3bb..c816a21 100755
--- a/packages/TtsService/src/android/tts/TtsService.java
+++ b/packages/TtsService/src/android/tts/TtsService.java
@@ -20,8 +20,10 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.SharedPreferences;
+import android.content.pm.ActivityInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
+import android.content.pm.ResolveInfo;
 import android.media.AudioManager;
 import android.media.MediaPlayer;
 import android.media.MediaPlayer.OnCompletionListener;
@@ -39,6 +41,7 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Locale;
 import java.util.concurrent.locks.ReentrantLock;
 import java.util.concurrent.TimeUnit;
@@ -146,6 +149,8 @@
     private final ReentrantLock synthesizerLock = new ReentrantLock();
 
     private static SynthProxy sNativeSynth = null;
+    private String currentSpeechEngineSOFile = "";
+
     @Override
     public void onCreate() {
         super.onCreate();
@@ -153,6 +158,9 @@
 
         mResolver = getContentResolver();
 
+        currentSpeechEngineSOFile = "";
+        setEngine(getDefaultEngine());
+
         String soLibPath = "/system/lib/libttspico.so";
         if (sNativeSynth == null) {
             sNativeSynth = new SynthProxy(soLibPath);
@@ -194,6 +202,54 @@
     }
 
 
+    private int setEngine(String enginePackageName) {
+        String soFilename = "";
+        // The SVOX TTS is an exception to how the TTS packaging scheme works
+        // because it is part of the system and not a 3rd party add-on; thus
+        // its binary is actually located under /system/lib/
+        if (enginePackageName.equals("com.svox.pico")) {
+            soFilename = "/system/lib/libttspico.so";
+        } else {
+            // Find the package
+            Intent intent = new Intent("android.intent.action.START_TTS_ENGINE");
+            intent.setPackage(enginePackageName);
+            ResolveInfo[] enginesArray = new ResolveInfo[0];
+            PackageManager pm = getPackageManager();
+            List <ResolveInfo> resolveInfos = pm.queryIntentActivities(intent, 0);
+            if ((resolveInfos == null) || resolveInfos.isEmpty()) {
+                Log.e(SERVICE_TAG, "Invalid TTS Engine Package: " + enginePackageName);
+                return TextToSpeech.ERROR;
+            }
+            enginesArray = resolveInfos.toArray(enginesArray);
+            // Generate the TTS .so filename from the package
+            ActivityInfo aInfo = enginesArray[0].activityInfo;
+            soFilename = aInfo.name.replace(aInfo.packageName + ".", "") + ".so";
+            soFilename = soFilename.toLowerCase();
+            soFilename = "/data/data/" + aInfo.packageName + "/lib/libtts" + soFilename;
+        }
+
+        if (currentSpeechEngineSOFile.equals(soFilename)) {
+            return TextToSpeech.SUCCESS;
+        }
+
+        File f = new File(soFilename);
+        if (!f.exists()) {
+            Log.e(SERVICE_TAG, "Invalid TTS Binary: " + soFilename);
+            return TextToSpeech.ERROR;
+        }
+
+        if (sNativeSynth != null) {
+            sNativeSynth.stopSync();
+            sNativeSynth.shutdown();
+            sNativeSynth = null;
+        }
+        sNativeSynth = new SynthProxy(soFilename);
+        currentSpeechEngineSOFile = soFilename;
+        return TextToSpeech.SUCCESS;
+    }
+
+
+
     private void setDefaultSettings() {
         setLanguage("", this.getDefaultLanguage(), getDefaultCountry(), getDefaultLocVariant());
 
@@ -209,6 +265,15 @@
                 == 1 );
     }
 
+    private String getDefaultEngine() {
+        String defaultEngine = android.provider.Settings.Secure.getString(mResolver,
+                android.provider.Settings.Secure.TTS_DEFAULT_SYNTH);
+        if (defaultEngine == null) {
+            return TextToSpeech.Engine.DEFAULT_SYNTH;
+        } else {
+            return defaultEngine;
+        }
+    }
 
     private int getDefaultRate() {
         return android.provider.Settings.Secure.getInt(mResolver,
diff --git a/preloaded-classes b/preloaded-classes
index c4b1c66..83a2b26 100644
--- a/preloaded-classes
+++ b/preloaded-classes
@@ -1,1782 +1,1042 @@
 # Classes which are preloaded by com.android.internal.os.ZygoteInit.
-# Automatically generated by frameworks/base/tools/preload/WritePreloadedClassFile.java.
-# MIN_LOAD_TIME_MICROS=1000
-SQLite.Blob
-SQLite.Database
-SQLite.FunctionContext
-SQLite.Stmt
-SQLite.Vm
 android.R$styleable
-android.accounts.Account
-android.accounts.AccountManager
-android.accounts.AccountManager$3
-android.accounts.AccountManager$6
-android.accounts.AccountManager$AmsTask
-android.accounts.AccountManager$AmsTask$Response
-android.accounts.AccountManager$BaseFutureTask
-android.accounts.AccountManager$BaseFutureTask$1
-android.accounts.AccountManager$BaseFutureTask$Response
-android.accounts.AccountManager$Future2Task
-android.accounts.AccountManager$GetAuthTokenByTypeAndFeaturesTask
-android.accounts.AuthenticatorDescription
-android.accounts.IAccountAuthenticatorResponse$Stub
-android.accounts.IAccountManager$Stub
-android.accounts.IAccountManager$Stub$Proxy
-android.accounts.IAccountManagerResponse$Stub
 android.app.Activity
 android.app.ActivityGroup
-android.app.ActivityManager
-android.app.ActivityManager$RunningServiceInfo
+android.app.ActivityManager$MemoryInfo$1
 android.app.ActivityManagerNative
 android.app.ActivityManagerProxy
 android.app.ActivityThread
+android.app.ActivityThread$ActivityRecord
+android.app.ActivityThread$AppBindData
 android.app.ActivityThread$ApplicationThread
+android.app.ActivityThread$ContextCleanupInfo
 android.app.ActivityThread$GcIdler
 android.app.ActivityThread$H
+android.app.ActivityThread$Idler
 android.app.ActivityThread$PackageInfo
+android.app.ActivityThread$PackageInfo$ReceiverDispatcher
 android.app.ActivityThread$PackageInfo$ReceiverDispatcher$InnerReceiver
+android.app.ActivityThread$PackageInfo$ServiceDispatcher
 android.app.ActivityThread$PackageInfo$ServiceDispatcher$InnerConnection
 android.app.ActivityThread$ProviderRecord
+android.app.ActivityThread$ProviderRefCount
 android.app.AlertDialog
-android.app.AlertDialog$Builder
 android.app.Application
 android.app.ApplicationContext
 android.app.ApplicationContext$ApplicationContentResolver
 android.app.ApplicationContext$ApplicationPackageManager
 android.app.ApplicationContext$ApplicationPackageManager$PackageRemovedReceiver
+android.app.ApplicationContext$ApplicationPackageManager$ResourceName
 android.app.ApplicationContext$SharedPreferencesImpl
-android.app.ApplicationContext$SharedPreferencesImpl$EditorImpl
 android.app.ApplicationLoaders
 android.app.ApplicationThreadNative
-android.app.BackupAgent
-android.app.DatePickerDialog
 android.app.Dialog
 android.app.ExpandableListActivity
 android.app.IActivityManager
-android.app.IActivityManager$ContentProviderHolder
+android.app.IActivityManager$ContentProviderHolder$1
 android.app.IAlarmManager$Stub
+android.app.IAlarmManager$Stub$Proxy
 android.app.IApplicationThread
-android.app.IInstrumentationWatcher$Stub
 android.app.INotificationManager$Stub
+android.app.INotificationManager$Stub$Proxy
+android.app.ISearchManager
 android.app.ISearchManager$Stub
-android.app.ISearchManagerCallback$Stub
-android.app.IServiceConnection$Stub
-android.app.IStatusBar$Stub
-android.app.ITransientNotification$Stub
-android.app.IWallpaperManager$Stub
-android.app.IWallpaperManagerCallback$Stub
+android.app.ISearchManager$Stub$Proxy
 android.app.Instrumentation
-android.app.Instrumentation$ActivityGoing
-android.app.Instrumentation$Idler
 android.app.IntentReceiverLeaked
-android.app.IntentService
-android.app.IntentService$ServiceHandler
 android.app.ListActivity
+android.app.ListActivity$1
+android.app.ListActivity$2
 android.app.LocalActivityManager
 android.app.Notification
 android.app.NotificationManager
 android.app.PendingIntent
+android.app.PendingIntent$1
 android.app.ProgressDialog
 android.app.ReceiverRestrictedContext
 android.app.ResultInfo
-android.app.SearchManager$OnCancelListener
-android.app.SearchManager$SearchManagerCallback
+android.app.ResultInfo$1
+android.app.SearchDialog
+android.app.SearchDialog$SearchAutoComplete
 android.app.Service
+android.app.ServiceConnectionLeaked
 android.app.TabActivity
-android.app.TimePickerDialog
-android.app.WallpaperManager
-android.app.WallpaperManager$Globals
-android.appwidget.AppWidgetHost
-android.appwidget.AppWidgetHost$Callbacks
-android.appwidget.AppWidgetHostView
-android.appwidget.AppWidgetHostView$1
-android.appwidget.AppWidgetHostView$ParcelableSparseArray
-android.appwidget.AppWidgetManager
-android.appwidget.AppWidgetProvider
-android.appwidget.AppWidgetProviderInfo
-android.backup.BackupDataInput
-android.backup.BackupDataInput$EntityHeader
-android.backup.BackupDataOutput
-android.backup.BackupHelperAgent
-android.backup.BackupHelperDispatcher
-android.backup.BackupHelperDispatcher$Header
-android.backup.BackupManager
-android.backup.FileBackupHelperBase
-android.backup.IBackupManager$Stub
-android.backup.IBackupManager$Stub$Proxy
-android.backup.IRestoreObserver$Stub
-android.backup.IRestoreSession$Stub
-android.backup.RestoreSet
-android.bluetooth.BluetoothA2dp
-android.bluetooth.BluetoothAdapter
-android.bluetooth.BluetoothAudioGateway
-android.bluetooth.BluetoothClass
-android.bluetooth.BluetoothDevice
-android.bluetooth.BluetoothHeadset
-android.bluetooth.BluetoothServerSocket
-android.bluetooth.BluetoothSocket
-android.bluetooth.HeadsetBase
-android.bluetooth.IBluetooth
-android.bluetooth.IBluetooth$Stub
-android.bluetooth.IBluetooth$Stub$Proxy
-android.bluetooth.IBluetoothA2dp
-android.bluetooth.IBluetoothA2dp$Stub
-android.bluetooth.IBluetoothHeadset$Stub
-android.bluetooth.IBluetoothHeadset$Stub$Proxy
-android.bluetooth.IBluetoothPbap$Stub
-android.bluetooth.ScoSocket
 android.content.AbstractSyncableContentProvider
-android.content.AbstractSyncableContentProvider$DatabaseHelper
 android.content.AbstractTableMerger
-android.content.AsyncQueryHandler
+android.content.AsyncQueryHandler$WorkerHandler
 android.content.BroadcastReceiver
+android.content.ComponentCallbacks
 android.content.ComponentName
-android.content.ContentProvider
+android.content.ComponentName$1
 android.content.ContentProvider$Transport
-android.content.ContentProviderClient
-android.content.ContentProviderNative
-android.content.ContentProviderNative$IEntityIteratorImpl
-android.content.ContentProviderOperation
 android.content.ContentProviderProxy
-android.content.ContentProviderResult
 android.content.ContentQueryMap
+android.content.ContentQueryMap$1
 android.content.ContentResolver
 android.content.ContentResolver$CursorWrapperInner
-android.content.ContentResolver$ParcelFileDescriptorInner
 android.content.ContentValues
 android.content.Context
 android.content.ContextWrapper
-android.content.Entity
+android.content.DialogInterface
+android.content.DialogInterface$OnCancelListener
+android.content.DialogInterface$OnDismissListener
 android.content.IContentProvider
+android.content.IContentService
 android.content.IContentService$Stub
-android.content.IContentService$Stub$Proxy
-android.content.IEntityIterator$Stub
-android.content.IIntentReceiver$Stub
-android.content.IIntentSender$Stub
-android.content.ISyncAdapter$Stub
-android.content.ISyncContext$Stub
 android.content.Intent
-android.content.Intent$ShortcutIconResource
+android.content.Intent$1
 android.content.IntentFilter
-android.content.IntentSender
-android.content.IntentSender$1
 android.content.SearchRecentSuggestionsProvider
-android.content.SearchRecentSuggestionsProvider$DatabaseHelper
-android.content.SyncAdapter
-android.content.SyncAdapter$Transport
-android.content.SyncAdapterType
+android.content.ServiceConnection
+android.content.SharedPreferences
 android.content.SyncResult
-android.content.SyncStateContentProviderHelper
+android.content.SyncResult$1
 android.content.SyncStats
+android.content.SyncStats$1
 android.content.SyncableContentProvider
-android.content.TempProviderSyncAdapter
-android.content.TempProviderSyncAdapter$SyncThread
 android.content.UriMatcher
 android.content.pm.ActivityInfo
+android.content.pm.ActivityInfo$1
 android.content.pm.ApplicationInfo
-android.content.pm.ConfigurationInfo
-android.content.pm.FeatureInfo
-android.content.pm.IPackageDataObserver$Stub
-android.content.pm.IPackageInstallObserver$Stub
+android.content.pm.ApplicationInfo$1
+android.content.pm.ComponentInfo
+android.content.pm.IPackageManager
 android.content.pm.IPackageManager$Stub
 android.content.pm.IPackageManager$Stub$Proxy
-android.content.pm.IPackageStatsObserver$Stub
 android.content.pm.InstrumentationInfo
-android.content.pm.PackageInfo
+android.content.pm.InstrumentationInfo$1
+android.content.pm.PackageItemInfo
 android.content.pm.PackageManager
 android.content.pm.PackageManager$NameNotFoundException
-android.content.pm.PackageStats
-android.content.pm.PathPermission
-android.content.pm.PermissionGroupInfo
 android.content.pm.PermissionInfo
 android.content.pm.ProviderInfo
-android.content.pm.ResolveInfo
-android.content.pm.ResolveInfo$DisplayNameComparator
-android.content.pm.ServiceInfo
-android.content.pm.Signature
-android.content.res.AssetFileDescriptor
-android.content.res.AssetFileDescriptor$1
-android.content.res.AssetFileDescriptor$AutoCloseInputStream
+android.content.pm.ProviderInfo$1
+android.content.pm.ResolveInfo$1
+android.content.pm.ServiceInfo$1
 android.content.res.AssetManager
 android.content.res.AssetManager$AssetInputStream
 android.content.res.ColorStateList
 android.content.res.ColorStateList$1
-android.content.res.CompatibilityInfo
-android.content.res.CompatibilityInfo$1
-android.content.res.CompatibilityInfo$Translator
 android.content.res.Configuration
-android.content.res.Configuration$1
-android.content.res.PluralRules
 android.content.res.Resources
-android.content.res.Resources$1
+android.content.res.Resources$Theme
 android.content.res.StringBlock
-android.content.res.StringBlock$Height
 android.content.res.TypedArray
 android.content.res.XmlBlock
 android.content.res.XmlBlock$Parser
-android.content.res.XmlResourceParser
 android.database.AbstractCursor
 android.database.AbstractCursor$SelfContentObserver
 android.database.AbstractWindowedCursor
 android.database.BulkCursorNative
 android.database.BulkCursorProxy
 android.database.BulkCursorToCursorAdaptor
-android.database.CharArrayBuffer
+android.database.ContentObservable
 android.database.ContentObserver$Transport
-android.database.CursorJoiner
-android.database.CursorJoiner$Result
+android.database.Cursor
 android.database.CursorToBulkCursorAdaptor
+android.database.CursorToBulkCursorAdaptor$ContentObserverProxy
 android.database.CursorWindow
-android.database.CursorWindow$1
 android.database.CursorWrapper
 android.database.DataSetObservable
-android.database.DatabaseUtils
-android.database.DatabaseUtils$InsertHelper
-android.database.IContentObserver$Stub
-android.database.MatrixCursor
+android.database.IContentObserver$Stub$Proxy
 android.database.MergeCursor
-android.database.sqlite.SQLiteClosable
-android.database.sqlite.SQLiteContentHelper
 android.database.sqlite.SQLiteCursor
 android.database.sqlite.SQLiteDatabase
-android.database.sqlite.SQLiteDatabase$ConflictAlgorithm
-android.database.sqlite.SQLiteDebug
-android.database.sqlite.SQLiteDebug$PagerStats
+android.database.sqlite.SQLiteDatabase$CursorFactory
 android.database.sqlite.SQLiteDirectCursorDriver
-android.database.sqlite.SQLiteDoneException
-android.database.sqlite.SQLiteException
-android.database.sqlite.SQLiteOpenHelper
-android.database.sqlite.SQLiteProgram
 android.database.sqlite.SQLiteQuery
-android.database.sqlite.SQLiteQueryBuilder
 android.database.sqlite.SQLiteStatement
 android.ddm.DdmHandleAppName
 android.ddm.DdmHandleExit
 android.ddm.DdmHandleHeap
 android.ddm.DdmHandleHello
 android.ddm.DdmHandleNativeHeap
-android.ddm.DdmHandleProfiling
 android.ddm.DdmHandleThread
 android.ddm.DdmRegister
-android.debug.JNITest
-android.emoji.EmojiFactory
-android.graphics.AvoidXfermode
 android.graphics.Bitmap
-android.graphics.Bitmap$1
-android.graphics.Bitmap$CompressFormat
-android.graphics.Bitmap$Config
-android.graphics.BitmapFactory
-android.graphics.BitmapFactory$Options
 android.graphics.BitmapShader
-android.graphics.BlurMaskFilter
-android.graphics.Camera
 android.graphics.Canvas
 android.graphics.Canvas$EdgeType
 android.graphics.Color
-android.graphics.ColorFilter
-android.graphics.ColorMatrixColorFilter
-android.graphics.ComposePathEffect
-android.graphics.ComposeShader
-android.graphics.CornerPathEffect
-android.graphics.DashPathEffect
-android.graphics.DiscretePathEffect
-android.graphics.DrawFilter
-android.graphics.EmbossMaskFilter
 android.graphics.Interpolator
-android.graphics.LayerRasterizer
-android.graphics.LightingColorFilter
 android.graphics.LinearGradient
-android.graphics.MaskFilter
 android.graphics.Matrix
 android.graphics.Matrix$ScaleToFit
-android.graphics.Movie
 android.graphics.NinePatch
 android.graphics.Paint
-android.graphics.Paint$Align
-android.graphics.Paint$Cap
-android.graphics.Paint$FontMetrics
-android.graphics.Paint$FontMetricsInt
-android.graphics.Paint$Join
-android.graphics.Paint$Style
 android.graphics.PaintFlagsDrawFilter
 android.graphics.Path
 android.graphics.Path$Direction
-android.graphics.Path$FillType
-android.graphics.PathDashPathEffect
-android.graphics.PathEffect
-android.graphics.PathMeasure
 android.graphics.Picture
-android.graphics.PixelFormat
-android.graphics.PixelXorXfermode
-android.graphics.Point
-android.graphics.PointF
+android.graphics.PorterDuff
 android.graphics.PorterDuff$Mode
-android.graphics.PorterDuffColorFilter
 android.graphics.PorterDuffXfermode
-android.graphics.RadialGradient
-android.graphics.Rasterizer
 android.graphics.Rect
-android.graphics.Rect$1
 android.graphics.RectF
-android.graphics.RectF$1
 android.graphics.Region
-android.graphics.Region$1
 android.graphics.Region$Op
-android.graphics.RegionIterator
 android.graphics.Shader
 android.graphics.Shader$TileMode
-android.graphics.SumPathEffect
-android.graphics.SweepGradient
 android.graphics.Typeface
 android.graphics.Xfermode
-android.graphics.drawable.Animatable
-android.graphics.drawable.AnimatedRotateDrawable
-android.graphics.drawable.AnimatedRotateDrawable$AnimatedRotateState
 android.graphics.drawable.AnimationDrawable
-android.graphics.drawable.AnimationDrawable$AnimationState
 android.graphics.drawable.BitmapDrawable
 android.graphics.drawable.BitmapDrawable$BitmapState
-android.graphics.drawable.ClipDrawable
-android.graphics.drawable.ClipDrawable$ClipState
 android.graphics.drawable.ColorDrawable
 android.graphics.drawable.ColorDrawable$ColorState
 android.graphics.drawable.Drawable
-android.graphics.drawable.Drawable$Callback
-android.graphics.drawable.Drawable$ConstantState
 android.graphics.drawable.DrawableContainer
-android.graphics.drawable.DrawableContainer$DrawableContainerState
 android.graphics.drawable.GradientDrawable
-android.graphics.drawable.GradientDrawable$1
-android.graphics.drawable.GradientDrawable$GradientState
-android.graphics.drawable.GradientDrawable$Orientation
 android.graphics.drawable.LayerDrawable
 android.graphics.drawable.LayerDrawable$ChildDrawable
 android.graphics.drawable.LayerDrawable$LayerState
-android.graphics.drawable.LevelListDrawable
 android.graphics.drawable.NinePatchDrawable
 android.graphics.drawable.NinePatchDrawable$NinePatchState
 android.graphics.drawable.PaintDrawable
+android.graphics.drawable.RotateDrawable
+android.graphics.drawable.RotateDrawable$RotateState
+android.graphics.drawable.ScaleDrawable
+android.graphics.drawable.ScaleDrawable$ScaleState
 android.graphics.drawable.ShapeDrawable
+android.graphics.drawable.ShapeDrawable$ShapeState
 android.graphics.drawable.StateListDrawable
 android.graphics.drawable.StateListDrawable$StateListState
 android.graphics.drawable.TransitionDrawable
 android.graphics.drawable.TransitionDrawable$TransitionState
-android.graphics.drawable.shapes.RectShape
 android.graphics.drawable.shapes.RoundRectShape
-android.hardware.Camera
-android.hardware.Camera$Parameters
-android.hardware.ISensorService$Stub
 android.hardware.SensorManager
-android.hardware.SensorManager$1
-android.hardware.SensorManager$LegacyListener
-android.inputmethodservice.AbstractInputMethodService
-android.inputmethodservice.AbstractInputMethodService$AbstractInputMethodImpl
-android.inputmethodservice.AbstractInputMethodService$AbstractInputMethodSessionImpl
-android.inputmethodservice.ExtractButton
-android.inputmethodservice.ExtractEditText
-android.inputmethodservice.IInputMethodSessionWrapper
-android.inputmethodservice.IInputMethodSessionWrapper$InputMethodEventCallbackWrapper
-android.inputmethodservice.IInputMethodWrapper
-android.inputmethodservice.IInputMethodWrapper$InputMethodSessionCallbackWrapper
-android.inputmethodservice.InputMethodService
-android.inputmethodservice.InputMethodService$InputMethodImpl
-android.inputmethodservice.InputMethodService$InputMethodSessionImpl
-android.inputmethodservice.Keyboard
-android.inputmethodservice.Keyboard$Key
 android.inputmethodservice.KeyboardView
-android.inputmethodservice.KeyboardView$2
-android.inputmethodservice.SoftInputWindow
-android.location.GpsStatus
-android.location.IGpsStatusListener$Stub
-android.location.ILocationListener$Stub
 android.location.ILocationManager$Stub
-android.location.ILocationManager$Stub$Proxy
-android.location.ILocationProvider
-android.location.ILocationProvider$Stub
 android.location.Location
-android.location.LocationManager
-android.location.LocationManager$ListenerTransport
-android.media.AmrInputStream
-android.media.AudioFormat
 android.media.AudioManager
-android.media.AudioRecord
-android.media.AudioSystem
-android.media.AudioTrack
-android.media.ExifInterface
 android.media.IAudioService$Stub
 android.media.IAudioService$Stub$Proxy
-android.media.JetPlayer
-android.media.MediaMetadataRetriever
-android.media.MediaPlayer
-android.media.MediaPlayer$OnVideoSizeChangedListener
-android.media.MediaRecorder
-android.media.MediaScanner
-android.media.MediaScannerConnection$MediaScannerConnectionClient
-android.media.Metadata
-android.media.Ringtone
-android.media.RingtoneManager
-android.media.ToneGenerator
-android.net.ConnectivityManager
-android.net.Credentials
-android.net.DhcpInfo
-android.net.DhcpInfo$1
-android.net.IConnectivityManager$Stub
-android.net.IConnectivityManager$Stub$Proxy
-android.net.LocalServerSocket
 android.net.LocalSocket
+android.net.LocalSocketAddress
 android.net.LocalSocketAddress$Namespace
 android.net.LocalSocketImpl
 android.net.LocalSocketImpl$SocketInputStream
 android.net.LocalSocketImpl$SocketOutputStream
-android.net.NetworkConnectivityListener
 android.net.NetworkConnectivityListener$State
 android.net.NetworkInfo
 android.net.NetworkInfo$DetailedState
-android.net.NetworkInfo$State
-android.net.NetworkUtils
+android.net.SSLCertificateSocketFactory
 android.net.Uri
+android.net.Uri$1
+android.net.Uri$AbstractHierarchicalUri
+android.net.Uri$AbstractPart
 android.net.Uri$HierarchicalUri
 android.net.Uri$OpaqueUri
 android.net.Uri$Part
+android.net.Uri$Part$EmptyPart
+android.net.Uri$PathPart
 android.net.Uri$PathSegments
 android.net.Uri$StringUri
 android.net.WebAddress
 android.net.http.AndroidHttpClient
 android.net.http.AndroidHttpClient$1
 android.net.http.AndroidHttpClient$2
-android.net.http.AndroidHttpClientConnection
-android.net.http.CertificateChainValidator
-android.net.http.Connection
-android.net.http.ConnectionThread
+android.net.http.AndroidHttpClient$CurlLogger
 android.net.http.DomainNameChecker
+android.net.http.CertificateChainValidator
 android.net.http.EventHandler
-android.net.http.Headers
 android.net.http.HttpsConnection
-android.net.http.Request
-android.net.http.RequestHandle
 android.net.http.RequestQueue
-android.net.http.RequestQueue$ActivePool
-android.net.http.SslCertificate
-android.net.http.SslCertificate$DName
 android.net.http.SslError
-android.net.vpn.IVpnService$Stub
-android.net.vpn.IVpnService$Stub$Proxy
-android.net.vpn.PptpProfile
-android.net.vpn.VpnManager
-android.net.vpn.VpnType
 android.net.wifi.IWifiManager$Stub
-android.net.wifi.IWifiManager$Stub$Proxy
-android.net.wifi.ScanResult
 android.net.wifi.SupplicantState
 android.net.wifi.WifiConfiguration
-android.net.wifi.WifiConfiguration$EnterpriseField
 android.net.wifi.WifiInfo
-android.net.wifi.WifiManager
-android.net.wifi.WifiNative
-android.opengl.GLES10
-android.opengl.GLES10Ext
-android.opengl.GLES11
-android.opengl.GLES11Ext
-android.opengl.GLU
-android.opengl.GLUtils
-android.opengl.Matrix
-android.opengl.Visibility
-android.os.AsyncTask$1
-android.os.AsyncTask$2
-android.os.AsyncTask$3
-android.os.AsyncTask$Status
-android.os.Base64Utils
+android.opengl.Material
 android.os.Binder
 android.os.BinderProxy
 android.os.Build
-android.os.Build$VERSION
 android.os.Bundle
-android.os.DeadObjectException
-android.os.Debug
-android.os.Debug$MemoryInfo
-android.os.Debug$MemoryInfo$1
+android.os.Bundle$1
 android.os.Environment
-android.os.FileObserver$ObserverThread
 android.os.FileUtils
-android.os.FileUtils$FileStatus
 android.os.Handler
 android.os.HandlerThread
-android.os.Hardware
 android.os.IBinder
-android.os.ICheckinService$Stub
 android.os.IHardwareService$Stub
-android.os.IInterface
-android.os.IMountService$Stub
-android.os.IMountService$Stub$Proxy
-android.os.INetStatService$Stub
-android.os.IParentalControlCallback$Stub
+android.os.IHardwareService$Stub$Proxy
 android.os.IPowerManager$Stub
 android.os.IPowerManager$Stub$Proxy
+android.os.IServiceManager
 android.os.Looper
-android.os.MemoryFile
 android.os.Message
-android.os.NetStat
+android.os.Message$1
+android.os.MessageQueue
+android.os.MessageQueue$IdleHandler
 android.os.Parcel
-android.os.Parcel$1
-android.os.ParcelFileDescriptor
-android.os.ParcelFileDescriptor$1
-android.os.Parcelable
-android.os.Parcelable$Creator
 android.os.PatternMatcher
-android.os.PerformanceCollector
-android.os.Power
+android.os.PatternMatcher$1
 android.os.PowerManager
+android.os.PowerManager$WakeLock
+android.os.PowerManager$WakeLock$1
 android.os.Process
-android.os.RemoteCallbackList
-android.os.RemoteException
-android.os.ResultReceiver
-android.os.ResultReceiver$MyResultReceiver
 android.os.ServiceManager
 android.os.ServiceManagerNative
-android.os.StatFs
-android.os.SystemClock
-android.os.SystemProperties
-android.os.UEventObserver
-android.pim.EventRecurrence
-android.pim.ICalendar
-android.pim.ICalendar$Component
-android.pim.ICalendar$Parameter
-android.pim.ICalendar$ParserState
-android.pim.ICalendar$Property
-android.pim.RecurrenceSet
+android.os.ServiceManagerProxy
+android.os.Vibrator
 android.preference.CheckBoxPreference
-android.preference.CheckBoxPreference$SavedState
 android.preference.DialogPreference
 android.preference.EditTextPreference
-android.preference.EditTextPreference$SavedState
-android.preference.EditTextPreference$SavedState$1
-android.preference.GenericInflater
 android.preference.ListPreference
-android.preference.ListPreference$SavedState
 android.preference.Preference
-android.preference.Preference$BaseSavedState
 android.preference.PreferenceActivity
-android.preference.PreferenceCategory
 android.preference.PreferenceGroup
 android.preference.PreferenceGroupAdapter
-android.preference.PreferenceInflater
 android.preference.PreferenceManager
 android.preference.PreferenceScreen
 android.preference.RingtonePreference
-android.preference.SeekBarPreference
-android.preference.VolumePreference
-android.preference.VolumePreference$SeekBarVolumizer
-android.provider.Browser
-android.provider.Calendar
-android.provider.Calendar$Attendees
-android.provider.Calendar$BusyBits
-android.provider.Calendar$CalendarAlerts
-android.provider.Calendar$Calendars
-android.provider.Calendar$Events
-android.provider.Calendar$Instances
-android.provider.Calendar$Reminders
-android.provider.CallLog
-android.provider.CallLog$Calls
-android.provider.Checkin
-android.provider.Checkin$Events
-android.provider.Checkin$Events$Tag
-android.provider.Checkin$Properties
-android.provider.Checkin$Properties$Tag
-android.provider.Checkin$Stats
-android.provider.Checkin$Stats$Tag
-android.provider.Contacts
-android.provider.Contacts$ContactMethods
-android.provider.ContactsContract
-android.provider.ContactsContract$CommonDataKinds$Email
-android.provider.ContactsContract$CommonDataKinds$Im
-android.provider.ContactsContract$CommonDataKinds$Organization
-android.provider.ContactsContract$CommonDataKinds$Phone
-android.provider.ContactsContract$CommonDataKinds$StructuredPostal
-android.provider.ContactsContract$Contacts
-android.provider.ContactsContract$Data
-android.provider.ContactsContract$DataColumnsWithJoins
-android.provider.ContactsContract$PhoneLookup
-android.provider.ContactsContract$Presence
-android.provider.ContactsContract$RawContacts
-android.provider.Downloads
-android.provider.DrmStore$Audio
-android.provider.Gmail
-android.provider.Gmail$AttachmentOrigin
-android.provider.Gmail$AttachmentRendition
-android.provider.Gmail$BecomeActiveNetworkCursor
-android.provider.Gmail$ConversationCursor
-android.provider.Gmail$CursorStatus
-android.provider.Gmail$LabelMap
-android.provider.Gmail$MailCursor
-android.provider.Gmail$MessageCursor
-android.provider.Gmail$PersonalLevel
-android.provider.Im$Account
-android.provider.Im$Avatars
-android.provider.Im$Chats
-android.provider.Im$Contacts
-android.provider.Im$Messages
-android.provider.Im$Provider
-android.provider.MediaStore
-android.provider.MediaStore$Audio$Albums
-android.provider.MediaStore$Audio$Artists
-android.provider.MediaStore$Audio$Media
-android.provider.MediaStore$Images$Media
-android.provider.MediaStore$Images$Thumbnails
-android.provider.SearchRecentSuggestions
-android.provider.Settings
-android.provider.Settings$Gservices
-android.provider.Settings$NameValueTable
-android.provider.Settings$Secure
-android.provider.Settings$SettingNotFoundException
-android.provider.Settings$System
-android.provider.SocialContract
-android.provider.SocialContract$Activities
-android.provider.SubscribedFeeds$Feeds
-android.provider.Telephony$BaseMmsColumns
-android.provider.Telephony$Mms
-android.provider.Telephony$Mms$Draft
-android.provider.Telephony$Mms$Inbox
-android.provider.Telephony$MmsSms
-android.provider.Telephony$Sms
-android.provider.Telephony$Sms$Conversations
-android.provider.Telephony$Sms$Intents
-android.provider.Telephony$Sms$Outbox
-android.provider.Telephony$Threads
-android.provider.UserDictionary
-android.provider.UserDictionary$Words
-android.security.KeyStore
-android.security.Md5MessageDigest
-android.security.MessageDigest
-android.security.Sha1MessageDigest
-android.server.BluetoothA2dpService
-android.server.BluetoothEventLoop
-android.server.BluetoothService
-android.server.data.CrashData
+android.sax.RootElement
 android.server.search.SearchableInfo
-android.speech.IRecognitionListener$Stub
-android.speech.IRecognitionService$Stub
-android.speech.RecognitionResult
-android.speech.RecognitionServiceUtil
-android.speech.RecognitionServiceUtil$Connection
-android.speech.srec.MicrophoneInputStream
-android.speech.srec.Recognizer
-android.speech.srec.Recognizer$Grammar
-android.speech.tts.ITts
-android.speech.tts.ITts$Stub
-android.speech.tts.ITts$Stub$Proxy
-android.speech.tts.ITtsCallback$Stub
-android.speech.tts.TextToSpeech
-android.speech.tts.TextToSpeech$2
-android.telephony.NeighboringCellInfo
-android.telephony.PhoneNumberFormattingTextWatcher
+android.server.search.SearchableInfo$1
 android.telephony.PhoneNumberUtils
-android.telephony.PhoneStateListener$1
+android.telephony.PhoneStateListener
 android.telephony.ServiceState
-android.telephony.SignalStrength
-android.telephony.SmsMessage
-android.telephony.SmsMessage$MessageClass
 android.telephony.TelephonyManager
-android.text.AndroidCharacter
-android.text.Annotation
+android.telephony.SmsManager
+android.telephony.SmsMessage
 android.text.AutoText
 android.text.BoringLayout
+android.text.BoringLayout$Metrics
 android.text.DynamicLayout
+android.text.DynamicLayout$ChangeWatcher
+android.text.Editable
 android.text.Editable$Factory
-android.text.Html
+android.text.GetChars
+android.text.GraphicsOperations
 android.text.Html$HtmlParser
-android.text.HtmlToSpannedConverter
-android.text.HtmlToSpannedConverter$Bold
-android.text.IClipboard$Stub
+android.text.InputFilter
 android.text.Layout
 android.text.Layout$Alignment
+android.text.Layout$Directions
 android.text.Layout$Ellipsizer
-android.text.Layout$SpannedEllipsizer
-android.text.LoginFilter
-android.text.LoginFilter$UsernameFilterGMail
+android.text.NoCopySpan
+android.text.NoCopySpan$Concrete
+android.text.PackedIntVector
+android.text.PackedObjectVector
+android.text.ParcelableSpan
 android.text.Selection
+android.text.Selection$END
+android.text.Selection$START
+android.text.SpanWatcher
+android.text.Spannable
+android.text.Spannable$Factory
 android.text.SpannableString
 android.text.SpannableStringBuilder
 android.text.SpannableStringInternal
+android.text.Spanned
 android.text.SpannedString
 android.text.StaticLayout
+android.text.Styled
+android.text.TextPaint
 android.text.TextUtils
+android.text.TextUtils$1
+android.text.TextUtils$EllipsizeCallback
 android.text.TextUtils$SimpleStringSplitter
 android.text.TextUtils$TruncateAt
-android.text.format.DateFormat
+android.text.TextWatcher
 android.text.format.DateUtils
-android.text.format.Formatter
 android.text.format.Time
 android.text.method.ArrowKeyMovementMethod
 android.text.method.BaseKeyListener
-android.text.method.DialerKeyListener
-android.text.method.HideReturnsTransformationMethod
-android.text.method.LinkMovementMethod
+android.text.method.KeyListener
 android.text.method.MetaKeyKeyListener
-android.text.method.PasswordTransformationMethod
+android.text.method.MovementMethod
 android.text.method.QwertyKeyListener
 android.text.method.ReplacementTransformationMethod
 android.text.method.ReplacementTransformationMethod$SpannedReplacementCharSequence
-android.text.method.ScrollingMovementMethod
 android.text.method.SingleLineTransformationMethod
 android.text.method.TextKeyListener
 android.text.method.TextKeyListener$Capitalize
-android.text.style.BulletSpan
-android.text.style.ClickableSpan
-android.text.style.DynamicDrawableSpan
-android.text.style.ImageSpan
+android.text.method.TextKeyListener$SettingsObserver
+android.text.method.TransformationMethod
+android.text.style.AlignmentSpan
+android.text.style.CharacterStyle
+android.text.style.ForegroundColorSpan
+android.text.style.LeadingMarginSpan
+android.text.style.LineBackgroundSpan
+android.text.style.LineHeightSpan
 android.text.style.MetricAffectingSpan
-android.text.style.QuoteSpan
+android.text.style.ParagraphStyle
+android.text.style.ReplacementSpan
 android.text.style.StyleSpan
-android.text.style.TextAppearanceSpan
 android.text.style.URLSpan
-android.text.style.UnderlineSpan
+android.text.style.UpdateAppearance
+android.text.style.UpdateLayout
+android.text.style.WrapTogetherSpan
 android.text.util.Linkify
-android.text.util.Linkify$1
-android.text.util.Linkify$4
 android.text.util.Regex
-android.text.util.Rfc822Tokenizer
-android.text.util.Rfc822Validator
+android.util.AndroidRuntimeException
 android.util.AttributeSet
-android.util.DayOfMonthCursor
 android.util.DisplayMetrics
-android.util.EventLog
-android.util.EventLog$Event
-android.util.EventLog$List
-android.util.FinitePool
 android.util.FloatMath
-android.util.Log
-android.util.LongSparseArray
-android.util.Pair
 android.util.SparseArray
-android.util.SparseIntArray
-android.util.StateSet
-android.util.TimingLogger
 android.util.TypedValue
-android.util.Xml
-android.util.Xml$Encoding
 android.util.Xml$XmlSerializerFactory
 android.view.AbsSavedState
+android.view.ContextMenu
+android.view.ContextMenu$ContextMenuInfo
 android.view.ContextThemeWrapper
 android.view.Display
 android.view.FocusFinder
-android.view.GestureDetector
+android.view.FocusFinder$1
 android.view.GestureDetector$SimpleOnGestureListener
-android.view.IRotationWatcher$Stub
+android.view.Gravity
+android.view.IWindow
 android.view.IWindow$Stub
+android.view.IWindowManager
 android.view.IWindowManager$Stub
 android.view.IWindowManager$Stub$Proxy
+android.view.IWindowSession
 android.view.IWindowSession$Stub
 android.view.IWindowSession$Stub$Proxy
 android.view.KeyCharacterMap
-android.view.KeyCharacterMap$KeyData
 android.view.KeyEvent
+android.view.KeyEvent$1
+android.view.KeyEvent$Callback
 android.view.LayoutInflater
+android.view.LayoutInflater$Factory
+android.view.Menu
 android.view.MenuInflater
-android.view.MenuInflater$MenuState
+android.view.MenuItem
 android.view.MotionEvent
-android.view.OrientationEventListener$SensorEventListenerImpl
+android.view.MotionEvent$1
 android.view.Surface
-android.view.Surface$1
-android.view.Surface$CompatibleCanvas
-android.view.SurfaceSession
+android.view.SurfaceHolder
 android.view.SurfaceView
-android.view.SurfaceView$2
-android.view.SurfaceView$MyWindow
+android.view.TouchDelegate
 android.view.VelocityTracker
 android.view.View
+android.view.View$AttachInfo
 android.view.View$AttachInfo$Callbacks
-android.view.View$AttachInfo$InvalidateInfo
 android.view.View$BaseSavedState
+android.view.View$BaseSavedState$1
+android.view.View$MeasureSpec
+android.view.View$OnCreateContextMenuListener
+android.view.View$ScrollabilityCache
 android.view.ViewConfiguration
-android.view.ViewDebug
 android.view.ViewGroup
-android.view.ViewParent
+android.view.ViewGroup$LayoutParams
+android.view.ViewGroup$MarginLayoutParams
+android.view.ViewManager
 android.view.ViewRoot
 android.view.ViewRoot$1
 android.view.ViewRoot$InputMethodCallback
+android.view.ViewRoot$RunQueue
+android.view.ViewRoot$TrackballAxis
 android.view.ViewRoot$W
 android.view.ViewStub
+android.view.ViewTreeObserver
+android.view.ViewTreeObserver$InternalInsetsInfo
+android.view.ViewTreeObserver$OnPreDrawListener
 android.view.Window
+android.view.Window$Callback
+android.view.Window$LocalWindowManager
+android.view.WindowLeaked
+android.view.WindowManager
 android.view.WindowManager$LayoutParams
+android.view.WindowManager$LayoutParams$1
 android.view.WindowManagerImpl
-android.view.accessibility.AccessibilityEvent
-android.view.accessibility.AccessibilityManager
-android.view.accessibility.AccessibilityManager$1
-android.view.accessibility.IAccessibilityManager$Stub
-android.view.accessibility.IAccessibilityManagerClient$Stub
+android.view.animation.AccelerateDecelerateInterpolator
 android.view.animation.AlphaAnimation
 android.view.animation.Animation
 android.view.animation.AnimationSet
 android.view.animation.LinearInterpolator
-android.view.animation.ScaleAnimation
 android.view.animation.Transformation
 android.view.inputmethod.BaseInputConnection
 android.view.inputmethod.CompletionInfo
+android.view.inputmethod.CompletionInfo$1
+
 android.view.inputmethod.EditorInfo
+android.view.inputmethod.EditorInfo$1
+
 android.view.inputmethod.ExtractedText
+android.view.inputmethod.ExtractedText$1
+
 android.view.inputmethod.ExtractedTextRequest
+android.view.inputmethod.ExtractedTextRequest$1
+
 android.view.inputmethod.InputBinding
-android.view.inputmethod.InputConnectionWrapper
+android.view.inputmethod.InputBinding$1
+android.view.inputmethod.InputConnection
+android.view.inputmethod.InputMethod
+android.view.inputmethod.InputMethod$SessionCallback
+
+android.view.inputmethod.InputMethodInfo
+android.view.inputmethod.InputMethodInfo$1
 android.view.inputmethod.InputMethodManager
 android.view.inputmethod.InputMethodManager$1
+android.view.inputmethod.InputMethodManager$2
 android.view.inputmethod.InputMethodManager$ControlledInputConnectionWrapper
+android.view.inputmethod.InputMethodManager$H
+
+android.view.inputmethod.InputMethodSession
+android.view.inputmethod.InputMethodSession$EventCallback
 android.webkit.BrowserFrame
-android.webkit.CacheLoader
 android.webkit.CacheManager
-android.webkit.CacheManager$CacheResult
 android.webkit.CallbackProxy
-android.webkit.CallbackProxy$ResultTransport
-android.webkit.ContentLoader
 android.webkit.CookieManager
-android.webkit.CookieManager$CookieComparator
 android.webkit.CookieSyncManager
-android.webkit.DataLoader
-android.webkit.DateSorter
-android.webkit.FrameLoader
-android.webkit.GeolocationPermissions
-android.webkit.GoogleLocationSettingManager
-android.webkit.HTML5VideoViewProxy
-android.webkit.HttpAuthHandler
 android.webkit.HttpDateTime
 android.webkit.JWebCoreJavaBridge
 android.webkit.LoadListener
 android.webkit.MimeTypeMap
-android.webkit.Network
-android.webkit.PluginManager
-android.webkit.SslErrorHandler
-android.webkit.StreamLoader
 android.webkit.URLUtil
 android.webkit.WebBackForwardList
-android.webkit.WebChromeClient
 android.webkit.WebHistoryItem
 android.webkit.WebIconDatabase
+android.webkit.WebIconDatabase$EventHandler
+android.webkit.WebIconDatabase$EventHandler$1
+android.webkit.WebIconDatabase$EventHandler$IconResult
 android.webkit.WebSettings
+android.webkit.WebSettings$EventHandler
+android.webkit.WebSettings$EventHandler$1
+android.webkit.WebSettings$LayoutAlgorithm
+android.webkit.WebSettings$RenderPriority
 android.webkit.WebSettings$TextSize
-android.webkit.WebStorage
 android.webkit.WebSyncManager
 android.webkit.WebSyncManager$SyncHandler
 android.webkit.WebTextView
 android.webkit.WebView
-android.webkit.WebView$1
-android.webkit.WebView$HitTestResult
-android.webkit.WebView$RequestFormData
-android.webkit.WebViewClient
+android.webkit.WebView$ExtendedZoomControls
+android.webkit.WebView$PrivateHandler
 android.webkit.WebViewCore
 android.webkit.WebViewCore$CursorData
-android.webkit.WebViewCore$TextSelectionData
-android.webkit.WebViewCore$TouchUpData
+android.webkit.WebViewCore$EventHub
+android.webkit.WebViewCore$EventHub$1
+android.webkit.WebViewCore$WebCoreThread
+android.webkit.WebViewCore$WebCoreThread$1
 android.webkit.WebViewDatabase
 android.widget.AbsListView
-android.widget.AbsListView$3
 android.widget.AbsListView$CheckForLongPress
+android.widget.AbsListView$CheckForTap
+android.widget.AbsListView$LayoutParams
 android.widget.AbsListView$PerformClick
 android.widget.AbsListView$RecycleBin
 android.widget.AbsListView$SavedState
+android.widget.AbsListView$SavedState$1
 android.widget.AbsSeekBar
 android.widget.AbsSpinner
-android.widget.AbsSpinner$SavedState
 android.widget.AbsoluteLayout
+android.widget.AbsoluteLayout$LayoutParams
 android.widget.AdapterView
 android.widget.AdapterView$AdapterDataSetObserver
-android.widget.AlphabetIndexer
-android.widget.AnalogClock
-android.widget.AnalogClock$1
-android.widget.AppSecurityPermissions
-android.widget.AppSecurityPermissions$1
-android.widget.AppSecurityPermissions$State
 android.widget.ArrayAdapter
 android.widget.AutoCompleteTextView
+android.widget.AutoCompleteTextView$DropDownItemClickListener
 android.widget.AutoCompleteTextView$DropDownListView
 android.widget.BaseAdapter
-android.widget.BaseExpandableListAdapter
 android.widget.Button
 android.widget.CheckBox
+android.widget.Checkable
 android.widget.CheckedTextView
-android.widget.Chronometer
 android.widget.CompoundButton
-android.widget.CompoundButton$SavedState
 android.widget.CursorAdapter
-android.widget.CursorFilter
+android.widget.CursorAdapter$ChangeObserver
+android.widget.CursorAdapter$MyDataSetObserver
 android.widget.CursorTreeAdapter
-android.widget.CursorTreeAdapter$MyCursorHelper$MyDataSetObserver
-android.widget.DatePicker
-android.widget.DatePicker$1
 android.widget.EditText
-android.widget.ExpandableListConnector
-android.widget.ExpandableListConnector$GroupMetadata
-android.widget.ExpandableListConnector$PositionMetadata
-android.widget.ExpandableListPosition
 android.widget.ExpandableListView
-android.widget.ExpandableListView$SavedState
-android.widget.FastScroller
-android.widget.FastScroller$ScrollFade
-android.widget.Filter
 android.widget.FrameLayout
 android.widget.FrameLayout$LayoutParams
-android.widget.GridView
+android.widget.Gallery
 android.widget.HeaderViewListAdapter
-android.widget.HorizontalScrollView
-android.widget.ImageButton
 android.widget.ImageView
 android.widget.ImageView$ScaleType
 android.widget.LinearLayout
 android.widget.LinearLayout$LayoutParams
 android.widget.ListView
+android.widget.ListView$ArrowScrollFocusResult
 android.widget.ListView$SavedState
-android.widget.MediaController
-android.widget.MediaController$3
-android.widget.MediaController$4
-android.widget.MediaController$MediaPlayerControl
-android.widget.MultiAutoCompleteTextView
+android.widget.ListView$SavedState$1
 android.widget.PopupWindow
-android.widget.PopupWindow$1
-android.widget.PopupWindow$PopupViewContainer
 android.widget.ProgressBar
-android.widget.ProgressBar$SavedState
-android.widget.QuickContactBadge
-android.widget.RadioButton
 android.widget.RadioGroup
-android.widget.RadioGroup$CheckedStateTracker
-android.widget.RadioGroup$PassThroughHierarchyChangeListener
 android.widget.RatingBar
 android.widget.RelativeLayout
-android.widget.RelativeLayout$DependencyGraph
-android.widget.RelativeLayout$DependencyGraph$Node
-android.widget.RelativeLayout$DependencyGraph$Node$1
+android.widget.RelativeLayout$LayoutParams
 android.widget.RemoteViews
-android.widget.RemoteViews$ReflectionAction
-android.widget.RemoteViews$SetOnClickPendingIntent
-android.widget.ResourceCursorAdapter
-android.widget.ResourceCursorTreeAdapter
 android.widget.ScrollBarDrawable
 android.widget.ScrollView
 android.widget.Scroller
 android.widget.SeekBar
-android.widget.SimpleAdapter
 android.widget.SimpleCursorAdapter
-android.widget.SimpleCursorTreeAdapter
 android.widget.SlidingDrawer
 android.widget.Spinner
+android.widget.Spinner$DropDownAdapter
 android.widget.TabHost
-android.widget.TabHost$1
-android.widget.TabHost$2
-android.widget.TabHost$FactoryContentStrategy
-android.widget.TabHost$IntentContentStrategy
-android.widget.TabHost$LabelAndIconIndicatorStrategy
-android.widget.TabHost$OnTabChangeListener
 android.widget.TabWidget
 android.widget.TableLayout
-android.widget.TableLayout$PassThroughHierarchyChangeListener
 android.widget.TableRow
 android.widget.TextView
+android.widget.TextView$1
+android.widget.TextView$Blink
 android.widget.TextView$BufferType
 android.widget.TextView$ChangeWatcher
 android.widget.TextView$CharWrapper
-android.widget.TextView$CommitSelectionReceiver
+android.widget.TextView$Drawables
+android.widget.TextView$InputContentType
+android.widget.TextView$InputMethodState
+android.widget.TextView$Marquee
 android.widget.TextView$MenuHandler
 android.widget.TextView$SavedState
-android.widget.TimePicker
-android.widget.TimePicker$2
-android.widget.Toast
-android.widget.Toast$TN
+android.widget.TextView$SavedState$1
+android.widget.ToggleButton
 android.widget.TwoLineListItem
-android.widget.VideoView
-android.widget.VideoView$1
-android.widget.VideoView$2
-android.widget.VideoView$3
-android.widget.VideoView$4
-android.widget.VideoView$5
-android.widget.VideoView$6
 android.widget.ViewAnimator
 android.widget.ViewSwitcher
 android.widget.ZoomButton
-android.widget.ZoomButton$1
-android.widget.ZoomButtonsController
-android.widget.ZoomButtonsController$3
-android.widget.ZoomButtonsController$5
-android.widget.ZoomButtonsController$Container
 android.widget.ZoomControls
-com.android.internal.R$styleable
-com.android.internal.app.AlertActivity
-com.android.internal.app.AlertController
-com.android.internal.app.AlertController$AlertParams
-com.android.internal.app.AlertController$AlertParams$1
-com.android.internal.app.AlertController$RecycleListView
-com.android.internal.app.ChooserActivity
-com.android.internal.app.ResolverActivity
-com.android.internal.app.ResolverActivity$ResolveListAdapter
-com.android.internal.app.RingtonePickerActivity
-com.android.internal.appwidget.IAppWidgetHost$Stub
-com.android.internal.appwidget.IAppWidgetService$Stub
-com.android.internal.appwidget.IAppWidgetService$Stub$Proxy
-com.android.internal.content.SyncStateContentProviderHelper
 com.android.internal.database.ArrayListCursor
 com.android.internal.database.SortCursor
-com.android.internal.graphics.NativeUtils
-com.android.internal.location.DummyLocationProvider
-com.android.internal.location.GpsLocationProvider
+com.android.internal.appwidget.IAppWidgetService$Stub
+com.android.internal.http.multipart.FilePart
+com.android.internal.http.multipart.MultipartEntity
+com.android.internal.http.multipart.Part
+com.android.internal.http.multipart.PartSource
+com.android.internal.http.multipart.StringPart
+com.android.internal.logging.AndroidConfig
 com.android.internal.logging.AndroidHandler
-com.android.internal.logging.AndroidHandler$1
 com.android.internal.os.AndroidPrintStream
-com.android.internal.os.BinderInternal
 com.android.internal.os.BinderInternal$GcWatcher
-com.android.internal.os.HandlerCaller
-com.android.internal.os.IResultReceiver$Stub
 com.android.internal.os.LoggingPrintStream
 com.android.internal.os.LoggingPrintStream$1
 com.android.internal.os.RuntimeInit
 com.android.internal.os.RuntimeInit$1
 com.android.internal.os.RuntimeInit$UncaughtHandler
-com.android.internal.os.SamplingProfilerIntegration
-com.android.internal.os.ZygoteConnection
-com.android.internal.os.ZygoteConnection$Arguments
-com.android.internal.os.ZygoteInit
 com.android.internal.os.ZygoteInit$MethodAndArgsCaller
+com.android.internal.policy.IPolicy
 com.android.internal.policy.PolicyManager
 com.android.internal.policy.impl.PhoneLayoutInflater
 com.android.internal.policy.impl.PhoneWindow
+com.android.internal.policy.impl.PhoneWindow$1
+com.android.internal.policy.impl.PhoneWindow$ContextMenuCallback
 com.android.internal.policy.impl.PhoneWindow$DecorView
-com.android.internal.policy.impl.PhoneWindow$DrawableFeatureState
+com.android.internal.policy.impl.PhoneWindow$PanelFeatureState
 com.android.internal.policy.impl.PhoneWindow$PanelFeatureState$SavedState
-com.android.internal.policy.impl.PhoneWindowManager
+com.android.internal.policy.impl.PhoneWindow$PanelFeatureState$SavedState$1
 com.android.internal.policy.impl.Policy
-com.android.internal.preference.YesNoPreference
-com.android.internal.telephony.DefaultPhoneNotifier
-com.android.internal.telephony.GsmAlphabet
+com.android.internal.telephony.Connection$DisconnectCause
+com.android.internal.telephony.Connection$PostDialState
 com.android.internal.telephony.IPhoneStateListener$Stub
-com.android.internal.telephony.IPhoneSubInfo$Stub
-com.android.internal.telephony.ISms$Stub
-com.android.internal.telephony.ISms$Stub$Proxy
 com.android.internal.telephony.ITelephony$Stub
-com.android.internal.telephony.ITelephony$Stub$Proxy
-com.android.internal.telephony.ITelephonyRegistry$Stub
-com.android.internal.telephony.ITelephonyRegistry$Stub$Proxy
-com.android.internal.telephony.IccCard$State
+com.android.internal.telephony.Phone
+com.android.internal.telephony.Phone$DataActivityState
 com.android.internal.telephony.Phone$DataState
 com.android.internal.telephony.Phone$State
-com.android.internal.telephony.PhoneFactory
+com.android.internal.telephony.Phone$SuppService
+com.android.internal.telephony.PhoneBase
 com.android.internal.telephony.PhoneStateIntentReceiver
-com.android.internal.telephony.SmsAddress
-com.android.internal.telephony.SmsMessageBase
-com.android.internal.telephony.gsm.GsmSmsAddress
-com.android.internal.telephony.gsm.SmsMessage
-com.android.internal.telephony.gsm.SmsMessage$PduParser
-com.android.internal.util.ArrayUtils
+com.android.internal.telephony.IccCard$State
+com.android.internal.telephony.BaseCommands
+com.android.internal.telephony.CallForwardInfo
+com.android.internal.telephony.CommandsInterface
+com.android.internal.telephony.DriverCall
+com.android.internal.telephony.DriverCall$State
+com.android.internal.telephony.gsm.GsmConnection
+com.android.internal.telephony.gsm.GSMPhone
+com.android.internal.telephony.GsmAlphabet
+com.android.internal.telephony.gsm.GsmMmiCode
+com.android.internal.telephony.gsm.SimCard
+com.android.internal.telephony.ISms$Stub
+com.android.internal.telephony.RIL
+com.android.internal.telephony.ServiceStateTracker
+
+com.android.internal.telephony.gsm.stk.ComprehensionTlvTag
+com.android.internal.telephony.gsm.stk.ResultCode
 com.android.internal.util.FastXmlSerializer
-com.android.internal.util.XmlUtils
-com.android.internal.view.BaseIWindow
 com.android.internal.view.IInputConnectionWrapper
+com.android.internal.view.IInputConnectionWrapper$MyHandler
+com.android.internal.view.IInputConnectionWrapper$SomeArgs
+
+com.android.internal.view.IInputContext
 com.android.internal.view.IInputContext$Stub
 com.android.internal.view.IInputContext$Stub$Proxy
+
+com.android.internal.view.IInputContextCallback
 com.android.internal.view.IInputContextCallback$Stub
+com.android.internal.view.IInputContextCallback$Stub$Proxy
+
+com.android.internal.view.IInputMethod
 com.android.internal.view.IInputMethod$Stub
+com.android.internal.view.IInputMethod$Stub$Proxy
+
+com.android.internal.view.IInputMethodCallback
 com.android.internal.view.IInputMethodCallback$Stub
 com.android.internal.view.IInputMethodCallback$Stub$Proxy
+
+com.android.internal.view.IInputMethodClient
 com.android.internal.view.IInputMethodClient$Stub
+com.android.internal.view.IInputMethodClient$Stub$Proxy
+
+com.android.internal.view.IInputMethodManager
 com.android.internal.view.IInputMethodManager$Stub
 com.android.internal.view.IInputMethodManager$Stub$Proxy
+
+com.android.internal.view.IInputMethodSession
 com.android.internal.view.IInputMethodSession$Stub
+com.android.internal.view.IInputMethodSession$Stub$Proxy
+
 com.android.internal.view.InputBindResult
+com.android.internal.view.InputBindResult$1
+
 com.android.internal.view.InputConnectionWrapper
 com.android.internal.view.InputConnectionWrapper$InputContextCallback
-com.android.internal.view.menu.ContextMenuBuilder
 com.android.internal.view.menu.ExpandedMenuView
 com.android.internal.view.menu.IconMenuItemView
 com.android.internal.view.menu.IconMenuView
-com.android.internal.view.menu.IconMenuView$SavedState
 com.android.internal.view.menu.ListMenuItemView
 com.android.internal.view.menu.MenuBuilder
-com.android.internal.view.menu.MenuBuilder$MenuType
+com.android.internal.view.menu.MenuBuilder$Callback
 com.android.internal.view.menu.MenuDialogHelper
 com.android.internal.view.menu.MenuItemImpl
 com.android.internal.view.menu.SubMenuBuilder
-com.android.internal.widget.ContactHeaderWidget
-com.android.internal.widget.DialogTitle
-com.android.internal.widget.EditableInputConnection
-com.android.internal.widget.LockPatternUtils
+com.android.internal.widget.LinearLayoutWithDefaultTouchRecepient
+com.android.internal.widget.LockPatternView
 com.android.internal.widget.NumberPicker
-com.android.internal.widget.NumberPicker$1
-com.android.internal.widget.NumberPicker$NumberRangeKeyListener
 com.android.internal.widget.NumberPickerButton
-com.android.internal.widget.RotarySelector
-com.android.internal.widget.Smileys
 com.google.android.gdata.client.AndroidGDataClient
-com.google.android.gdata.client.AndroidGDataClient$GetRequestCreator
 com.google.android.gdata.client.AndroidGDataClient$PostRequestCreator
-com.google.android.gdata.client.QueryParamsImpl
-com.google.android.gles_jni.EGLDisplayImpl
 com.google.android.gles_jni.EGLImpl
-com.google.android.gles_jni.EGLSurfaceImpl
 com.google.android.gles_jni.GLImpl
-com.google.android.mms.util.SqliteWrapper
+com.google.android.mms.ContentType
+com.google.android.mms.pdu.CharacterSets
+com.google.android.mms.pdu.PduPart
+com.google.android.mms.pdu.PduPersister
 com.google.android.net.GoogleHttpClient
-com.google.android.net.GoogleHttpClient$WrappedSocketFactory
-com.google.android.net.NetworkStatsEntity
-com.google.android.net.ParentalControl
-com.google.android.net.ParentalControl$RemoteCallback
-com.google.android.net.ParentalControlState
-com.google.android.net.ParentalControlState$1
 com.google.android.net.UrlRules
 com.google.android.net.UrlRules$Rule
+com.google.android.util.SimplePullParser
 com.google.common.Config
-com.google.common.I18n
-com.google.common.StaticUtil
-com.google.common.android.AndroidClock
-com.google.common.android.AndroidConfig
-com.google.common.android.AndroidConfig$1
-com.google.common.async.AbstractRequest
-com.google.common.async.AsyncHttpRequestFactory
-com.google.common.async.AsyncHttpRequestFactory$AsyncHttpRequestImpl
-com.google.common.graphics.android.AndroidFontFactory
-com.google.common.graphics.android.AndroidImageFactory
-com.google.common.io.BaseConnectionFactory
-com.google.common.io.BaseHttpConnectionFactory
-com.google.common.io.IoUtil
-com.google.common.io.android.AndroidFixedPersistentStore
-com.google.common.io.android.AndroidHttpClient
-com.google.common.io.android.AndroidHttpClient$1
-com.google.common.io.android.AndroidHttpClient$2
-com.google.common.io.android.AndroidHttpClient$LoggingConfiguration
-com.google.common.io.android.AndroidHttpConnectionFactory
-com.google.common.io.android.AndroidHttpConnectionFactory$AndroidGoogleHttpConnection
-com.google.common.io.android.AndroidPersistentStore
-com.google.common.io.android.GoogleHttpClient
-com.google.common.io.android.J2SeTcpConnectionFactory
 com.google.common.io.protocol.ProtoBuf
 com.google.common.io.protocol.ProtoBufType
-com.google.common.lang.ThreadFactory
-com.google.common.task.AbstractTask
-com.google.common.task.Task
-com.google.common.task.TaskRunner
 com.google.common.util.text.TextUtil
-com.google.masf.MobileServiceMux
-com.google.masf.protocol.HeaderRequest
-com.google.masf.protocol.PlainRequest
-com.google.masf.protocol.Request
-com.google.masf.services.CookieService
-com.google.masf.services.EventLogService
-com.google.masf.services.resume.WindowResumeService
-com.google.wireless.gdata.calendar.client.CalendarClient
-com.google.wireless.gdata.calendar.data.CalendarEntry
-com.google.wireless.gdata.calendar.data.CalendarsFeed
-com.google.wireless.gdata.calendar.data.EventEntry
-com.google.wireless.gdata.calendar.data.Who
-com.google.wireless.gdata.calendar.parser.xml.XmlCalendarGDataParserFactory
-com.google.wireless.gdata.calendar.serializer.xml.XmlEventEntryGDataSerializer
-com.google.wireless.gdata.client.GDataServiceClient
-com.google.wireless.gdata.client.QueryParams
-com.google.wireless.gdata.data.Entry
-com.google.wireless.gdata.parser.xml.XmlGDataParser
 com.ibm.icu4jni.charset.CharsetDecoderICU
 com.ibm.icu4jni.charset.CharsetEncoderICU
 com.ibm.icu4jni.charset.CharsetICU
-com.ibm.icu4jni.charset.CharsetProviderICU
-com.ibm.icu4jni.charset.NativeConverter
-com.ibm.icu4jni.common.ErrorCode
-com.ibm.icu4jni.lang.UCharacter
-com.ibm.icu4jni.regex.NativeRegEx
 com.ibm.icu4jni.text.CollationAttribute
-com.ibm.icu4jni.text.CollationKey
-com.ibm.icu4jni.text.Collator
 com.ibm.icu4jni.text.DecimalFormat
 com.ibm.icu4jni.text.DecimalFormatSymbols
-com.ibm.icu4jni.text.NativeBreakIterator
-com.ibm.icu4jni.text.NativeCollation
-com.ibm.icu4jni.text.NativeDecimalFormat
 com.ibm.icu4jni.text.NativeDecimalFormat$UNumberFormatAttribute
 com.ibm.icu4jni.text.NativeDecimalFormat$UNumberFormatSymbol
 com.ibm.icu4jni.text.RuleBasedCollator
-com.ibm.icu4jni.text.RuleBasedNumberFormat
-com.ibm.icu4jni.util.Resources
 com.ibm.icu4jni.util.Resources$DefaultTimeZones
-com.ibm.icu4jni.util.Resources$Locale
-dalvik.system.NativeStart
+dalvik.system.DexFile
 dalvik.system.PathClassLoader
-dalvik.system.SamplingProfiler
-dalvik.system.SamplingProfiler$State
-dalvik.system.TouchDex
-dalvik.system.VMDebug
-dalvik.system.VMRuntime
-dalvik.system.VMStack
-dalvik.system.Zygote
 java.beans.PropertyChangeEvent
+java.beans.PropertyChangeListener
 java.beans.PropertyChangeSupport
 java.io.BufferedInputStream
-java.io.BufferedReader
 java.io.ByteArrayInputStream
-java.io.Closeable
-java.io.DataInput
-java.io.DataInputStream
-java.io.DataOutput
-java.io.DataOutputStream
-java.io.EmulatedFieldsForDumping
-java.io.EmulatedFieldsForLoading
+java.io.ByteArrayOutputStream
 java.io.File
 java.io.FileDescriptor
 java.io.FileInputStream
 java.io.FileInputStream$RepositioningLock
 java.io.FileNotFoundException
-java.io.FileOutputStream
-java.io.FilterOutputStream
-java.io.FilterReader
-java.io.Flushable
-java.io.InputStream
-java.io.InputStreamReader
-java.io.ObjectInput
-java.io.ObjectInputStream
-java.io.ObjectInputStream$GetField
-java.io.ObjectOutput
-java.io.ObjectOutputStream
+java.io.FilterInputStream
+java.io.IOException
 java.io.ObjectStreamClass
-java.io.ObjectStreamClass$3
-java.io.ObjectStreamClass$OSCThreadLocalCache
-java.io.ObjectStreamConstants
-java.io.ObjectStreamField
-java.io.OutputStream
-java.io.OutputStreamWriter
-java.io.PrintStream
 java.io.PrintWriter
-java.io.PushbackReader
 java.io.RandomAccessFile
-java.io.Reader
-java.io.Serializable
-java.io.StreamCorruptedException
-java.io.StringReader
+java.io.RandomAccessFile$RepositionLock
 java.io.StringWriter
 java.io.Writer
-java.lang.AbstractStringBuilder
-java.lang.Appendable
-java.lang.ArrayIndexOutOfBoundsException
-java.lang.Boolean
-java.lang.BootClassLoader
-java.lang.Byte
-java.lang.CharSequence
-java.lang.Character
 java.lang.Character$valueOfCache
 java.lang.Class
 java.lang.ClassCache
-java.lang.ClassCache$EnumComparator
-java.lang.ClassLoader
-java.lang.ClassLoader$SystemClassLoader
-java.lang.Cloneable
-java.lang.Comparable
-java.lang.Double
-java.lang.Enum
-java.lang.Error
-java.lang.Exception
-java.lang.Float
+java.lang.ClassNotFoundException
 java.lang.IllegalArgumentException
+java.lang.IllegalStateException
 java.lang.Integer
 java.lang.Integer$valueOfCache
-java.lang.InternalError
-java.lang.InterruptedException
-java.lang.Iterable
-java.lang.LangAccessImpl
 java.lang.LinkageError
 java.lang.Long
 java.lang.Long$valueOfCache
-java.lang.Math
 java.lang.NoClassDefFoundError
-java.lang.NoSuchFieldError
-java.lang.NoSuchMethodError
-java.lang.Number
 java.lang.NumberFormatException
 java.lang.Object
-java.lang.OutOfMemoryError
-java.lang.Package
-java.lang.Readable
-java.lang.Runnable
 java.lang.Runtime
 java.lang.RuntimeException
-java.lang.RuntimePermission
-java.lang.SecurityException
-java.lang.Short
 java.lang.Short$valueOfCache
-java.lang.StackOverflowError
-java.lang.StackTraceElement
-java.lang.StrictMath
 java.lang.String
-java.lang.String$CaseInsensitiveComparator
 java.lang.StringBuffer
 java.lang.StringBuilder
-java.lang.System
-java.lang.SystemProperties
 java.lang.Thread
-java.lang.Thread$State
-java.lang.Thread$UncaughtExceptionHandler
-java.lang.ThreadGroup
-java.lang.ThreadGroup$ChildrenGroupsLock
-java.lang.ThreadGroup$ChildrenThreadsLock
 java.lang.ThreadLocal
 java.lang.ThreadLocal$Values
 java.lang.Throwable
-java.lang.UnsatisfiedLinkError
-java.lang.UnsupportedOperationException
-java.lang.VMClassLoader
 java.lang.VMThread
-java.lang.VirtualMachineError
-java.lang.Void
-java.lang.annotation.Annotation
-java.lang.ref.PhantomReference
-java.lang.ref.Reference
 java.lang.ref.ReferenceQueue
 java.lang.ref.SoftReference
 java.lang.ref.WeakReference
-java.lang.reflect.AccessibleObject
-java.lang.reflect.AnnotatedElement
-java.lang.reflect.Array
 java.lang.reflect.Constructor
-java.lang.reflect.Field
-java.lang.reflect.GenericDeclaration
-java.lang.reflect.InvocationHandler
-java.lang.reflect.Member
 java.lang.reflect.Method
 java.lang.reflect.Modifier
-java.lang.reflect.Proxy
-java.lang.reflect.ReflectionAccessImpl
-java.lang.reflect.Type
 java.math.BigDecimal
 java.math.BigInt
 java.math.BigInteger
 java.math.Multiplication
-java.net.DatagramPacket
-java.net.HttpURLConnection
-java.net.Inet4Address
+java.net.ContentHandler
 java.net.InetAddress
-java.net.InetAddress$1
-java.net.InetAddress$2
+java.net.InetAddress$CacheElement
 java.net.InetAddress$WaitReachable
-java.net.InetSocketAddress
 java.net.JarURLConnection
 java.net.NegativeCache
-java.net.NetworkInterface
-java.net.Proxy
-java.net.Proxy$Type
-java.net.ProxySelector
+java.net.NetPermission
 java.net.ProxySelectorImpl
-java.net.ResponseCache
-java.net.ServerSocket
-java.net.Socket
-java.net.SocketImpl
-java.net.SocketOptions
-java.net.SocketTimeoutException
+java.net.Socket$ConnectLock
 java.net.URI
 java.net.URL
 java.net.URLConnection
 java.net.URLConnection$DefaultContentHandler
 java.net.URLStreamHandler
-java.nio.BaseByteBuffer
-java.nio.Buffer
-java.nio.BufferFactory
-java.nio.ByteBuffer
 java.nio.ByteOrder
-java.nio.CharArrayBuffer
-java.nio.CharBuffer
 java.nio.CharSequenceAdapter
-java.nio.CharToByteBufferAdapter
 java.nio.DirectByteBuffer
-java.nio.DirectByteBuffer$SafeAddress
-java.nio.FloatToByteBufferAdapter
-java.nio.HeapByteBuffer
-java.nio.IntBuffer
-java.nio.IntToByteBufferAdapter
-java.nio.NIOAccess
-java.nio.ReadWriteCharArrayBuffer
 java.nio.ReadWriteDirectByteBuffer
-java.nio.ReadWriteHeapByteBuffer
+java.nio.ReadWriteIntArrayBuffer
+java.nio.ReadWriteShortArrayBuffer
 java.nio.ShortBuffer
 java.nio.ShortToByteBufferAdapter
-java.nio.channels.ByteChannel
-java.nio.channels.Channel
-java.nio.channels.FileChannel
-java.nio.channels.GatheringByteChannel
-java.nio.channels.InterruptibleChannel
-java.nio.channels.ReadableByteChannel
-java.nio.channels.ScatteringByteChannel
-java.nio.channels.WritableByteChannel
-java.nio.channels.spi.AbstractInterruptibleChannel
-java.nio.channels.spi.AbstractInterruptibleChannel$1
-java.nio.charset.Charset
-java.nio.charset.Charset$1
-java.nio.charset.CharsetDecoder
 java.nio.charset.CharsetEncoder
-java.nio.charset.CoderResult
-java.nio.charset.CodingErrorAction
-java.nio.charset.spi.CharsetProvider
-java.security.AccessController
-java.security.BasicPermission
-java.security.Guard
-java.security.KeyFactory
+java.security.AccessControlContext
+java.security.GeneralSecurityException
 java.security.KeyStore
 java.security.MessageDigest
-java.security.NoSuchAlgorithmException
-java.security.Permission
-java.security.PrivilegedAction
-java.security.PrivilegedExceptionAction
+java.security.ProtectionDomain
 java.security.Provider
 java.security.SecureRandom
 java.security.Security
-java.security.Security$SecurityDoor
-java.security.cert.CertPath
 java.security.cert.CertPathValidator
-java.security.cert.CertificateException
 java.security.cert.CertificateFactory
-java.security.cert.CertificateParsingException
-java.security.cert.PKIXCertPathValidatorResult
 java.security.cert.PKIXParameters
+java.security.cert.TrustAnchor
+java.security.cert.X509CertSelector
 java.security.cert.X509Certificate
-java.security.interfaces.RSAPublicKey
-java.security.spec.X509EncodedKeySpec
-java.text.AttributedCharacterIterator$Attribute
-java.text.CollationKey
 java.text.Collator
 java.text.DateFormat
 java.text.DateFormat$Field
-java.text.DateFormatSymbols
 java.text.DecimalFormat
 java.text.DecimalFormatSymbols
-java.text.Format
-java.text.Format$Field
+java.text.MessageFormat
 java.text.NumberFormat
+java.text.RuleBasedCollator
 java.text.SimpleDateFormat
-java.util.AbstractCollection
-java.util.AbstractList
 java.util.AbstractList$FullListIterator
 java.util.AbstractList$SimpleListIterator
-java.util.AbstractList$SubAbstractList
-java.util.AbstractList$SubAbstractListRandomAccess
-java.util.AbstractMap
-java.util.AbstractQueue
-java.util.AbstractSequentialList
-java.util.AbstractSet
 java.util.ArrayList
 java.util.Arrays
 java.util.Arrays$ArrayList
-java.util.BitSet
 java.util.Calendar
-java.util.Collection
-java.util.Collections
-java.util.Collections$EmptyList
-java.util.Collections$EmptyMap
-java.util.Collections$EmptySet
-java.util.Collections$SingletonList
-java.util.Collections$SingletonSet
 java.util.Collections$SynchronizedCollection
-java.util.Collections$SynchronizedList
-java.util.Collections$SynchronizedRandomAccessList
-java.util.Collections$UnmodifiableCollection
-java.util.Collections$UnmodifiableCollection$1
 java.util.Collections$UnmodifiableList
 java.util.Collections$UnmodifiableMap
-java.util.Collections$UnmodifiableMap$UnmodifiableEntrySet
 java.util.Collections$UnmodifiableMap$UnmodifiableEntrySet$1
-java.util.Collections$UnmodifiableRandomAccessList
-java.util.Collections$UnmodifiableSet
-java.util.Comparator
-java.util.Currency
 java.util.Date
-java.util.Dictionary
 java.util.EnumMap
-java.util.EnumSet
-java.util.Enumeration
+java.util.EventListener
+java.util.EventObject
 java.util.Formatter
-java.util.Formatter$FormatToken
-java.util.Formatter$ParserStateMachine
-java.util.Formatter$Transformer
 java.util.GregorianCalendar
 java.util.HashMap
-java.util.HashMap$HashIterator
-java.util.HashMap$HashMapEntry
-java.util.HashMap$KeyIterator
-java.util.HashMap$KeySet
 java.util.HashSet
 java.util.Hashtable
-java.util.Hashtable$HashtableEntry
-java.util.Hashtable$KeyEnumeration
 java.util.IdentityHashMap
-java.util.Iterator
 java.util.LinkedHashMap
-java.util.LinkedHashMap$KeyIterator
-java.util.LinkedHashMap$ValueIterator
 java.util.LinkedList
-java.util.LinkedList$LinkIterator
+java.util.LinkedList$Link
 java.util.List
 java.util.Locale
-java.util.Map
-java.util.Map$Entry
-java.util.MiniEnumSet
-java.util.MiniEnumSet$MiniEnumSetIterator
-java.util.Observable
-java.util.PriorityQueue
 java.util.Properties
-java.util.PropertyPermission
-java.util.RandomAccess
+java.util.Random
 java.util.ResourceBundle
-java.util.Set
 java.util.SimpleTimeZone
-java.util.SortedMap
-java.util.SortedSet
-java.util.SpecialAccess
-java.util.Stack
-java.util.StringTokenizer
-java.util.TimSort
 java.util.TimeZone
 java.util.TreeMap
-java.util.TreeMap$1
-java.util.TreeMap$UnboundedKeyIterator
+java.util.TreeMap$MapEntry
 java.util.TreeSet
-java.util.UUID
 java.util.Vector
-java.util.Vector$1
 java.util.WeakHashMap
-java.util.WeakHashMap$1
-java.util.WeakHashMap$1$1
 java.util.WeakHashMap$Entry
-java.util.concurrent.AbstractExecutorService
-java.util.concurrent.ArrayBlockingQueue
 java.util.concurrent.ConcurrentHashMap
-java.util.concurrent.ConcurrentHashMap$Segment
 java.util.concurrent.ConcurrentLinkedQueue
-java.util.concurrent.ConcurrentLinkedQueue$Node
-java.util.concurrent.CopyOnWriteArrayList
-java.util.concurrent.CopyOnWriteArrayList$COWIterator
-java.util.concurrent.CountDownLatch
-java.util.concurrent.CountDownLatch$Sync
-java.util.concurrent.Executors$DefaultThreadFactory
-java.util.concurrent.Executors$DelegatedExecutorService
-java.util.concurrent.Executors$FinalizableDelegatedExecutorService
-java.util.concurrent.Executors$RunnableAdapter
-java.util.concurrent.FutureTask
-java.util.concurrent.FutureTask$Sync
+java.util.concurrent.DelayQueue
 java.util.concurrent.LinkedBlockingQueue
 java.util.concurrent.ScheduledThreadPoolExecutor
 java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue
-java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask
-java.util.concurrent.Semaphore
-java.util.concurrent.SynchronousQueue
-java.util.concurrent.SynchronousQueue$TransferStack
-java.util.concurrent.SynchronousQueue$TransferStack$SNode
-java.util.concurrent.ThreadPoolExecutor
-java.util.concurrent.ThreadPoolExecutor$AbortPolicy
-java.util.concurrent.ThreadPoolExecutor$Worker
 java.util.concurrent.TimeUnit
+java.util.concurrent.atomic.AtomicBoolean
 java.util.concurrent.atomic.AtomicInteger
-java.util.concurrent.atomic.AtomicLong
-java.util.concurrent.atomic.AtomicReference
 java.util.concurrent.atomic.UnsafeAccess
 java.util.concurrent.locks.AbstractQueuedSynchronizer
 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
 java.util.concurrent.locks.AbstractQueuedSynchronizer$Node
+java.util.concurrent.locks.Lock
+java.util.concurrent.locks.LockSupport
 java.util.concurrent.locks.ReentrantLock
 java.util.concurrent.locks.ReentrantLock$FairSync
 java.util.concurrent.locks.ReentrantLock$NonfairSync
 java.util.concurrent.locks.ReentrantLock$Sync
 java.util.concurrent.locks.ReentrantReadWriteLock
 java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync
-java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock
-java.util.concurrent.locks.ReentrantReadWriteLock$Sync
+java.util.concurrent.locks.UnsafeAccess
 java.util.jar.Attributes
 java.util.jar.Attributes$Name
+java.util.jar.InitManifest
+java.util.jar.JarEntry
 java.util.jar.JarFile
+java.util.jar.JarFile$1JarFileEnumerator
+java.util.jar.JarFile$JarFileInputStream
 java.util.jar.JarVerifier
 java.util.jar.Manifest
 java.util.logging.ErrorManager
+java.util.logging.Formatter
 java.util.logging.Handler
 java.util.logging.Level
 java.util.logging.LogManager
+java.util.logging.LogManager$1
+java.util.logging.LogManager$2
+java.util.logging.LogManager$2$1
+java.util.logging.LogManager$3
 java.util.logging.LogRecord
 java.util.logging.Logger
-java.util.regex.MatchResult
+java.util.logging.LoggingPermission
+java.util.logging.SimpleFormatter
 java.util.regex.Matcher
 java.util.regex.Pattern
-java.util.zip.Adler32
-java.util.zip.CRC32
-java.util.zip.Checksum
-java.util.zip.Deflater
 java.util.zip.DeflaterOutputStream
-java.util.zip.GZIPOutputStream
 java.util.zip.Inflater
 java.util.zip.InflaterInputStream
+java.util.zip.ZipConstants
 java.util.zip.ZipEntry
+java.util.zip.ZipEntry$LittleEndianReader
 java.util.zip.ZipFile
-javax.crypto.Cipher
-javax.crypto.CipherSpi
-javax.crypto.Mac
-javax.crypto.spec.SecretKeySpec
-javax.microedition.khronos.egl.EGL
-javax.microedition.khronos.egl.EGL10
+java.util.zip.ZipFile$2
+java.util.zip.ZipFile$RAFStream
 javax.microedition.khronos.egl.EGLContext
-javax.microedition.khronos.opengles.GL
-javax.microedition.khronos.opengles.GL10
-javax.microedition.khronos.opengles.GL10Ext
-javax.microedition.khronos.opengles.GL11
-javax.microedition.khronos.opengles.GL11Ext
-javax.microedition.khronos.opengles.GL11ExtensionPack
-javax.net.ssl.DefaultHostnameVerifier
 javax.net.ssl.HttpsURLConnection
-javax.net.ssl.KeyManagerFactory
-javax.net.ssl.SSLContext
-javax.net.ssl.SSLServerSocket
-javax.net.ssl.SSLSession
-javax.net.ssl.SSLSocket
-javax.net.ssl.SSLSocketFactory
-javax.net.ssl.TrustManagerFactory
-javax.net.ssl.X509ExtendedKeyManager
+javax.net.ssl.SSLHandshakeException
 javax.security.auth.x500.X500Principal
 javax.security.cert.X509Certificate
-javax.xml.parsers.SAXParserFactory
+javax.security.cert.X509Certificate$2
 junit.framework.Assert
 org.apache.commons.codec.binary.Base64
 org.apache.commons.codec.binary.Hex
 org.apache.commons.logging.LogFactory
 org.apache.commons.logging.impl.Jdk14Logger
-org.apache.commons.logging.impl.WeakHashtable
-org.apache.harmony.crypto.internal.NullCipherSpi
-org.apache.harmony.dalvik.NativeTestTarget
+org.apache.harmony.archive.util.Util
+org.apache.harmony.dalvik.ddmc.Chunk
 org.apache.harmony.dalvik.ddmc.ChunkHandler
 org.apache.harmony.dalvik.ddmc.DdmServer
-org.apache.harmony.kernel.vm.LangAccess
-org.apache.harmony.kernel.vm.ReflectionAccess
-org.apache.harmony.lang.annotation.AnnotationFactory
-org.apache.harmony.lang.annotation.AnnotationMember
-org.apache.harmony.lang.annotation.AnnotationMember$DefaultValues
-org.apache.harmony.luni.internal.net.www.protocol.http.HttpConfiguration
-org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection
-org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection
-org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnection$LimitedInputStream
+org.apache.harmony.dalvik.ddmc.DdmVmInternal
+org.apache.harmony.luni.internal.net.www.protocol.file.FileURLConnection
+org.apache.harmony.luni.internal.net.www.protocol.file.Handler
+org.apache.harmony.luni.internal.net.www.protocol.http.Handler
+org.apache.harmony.luni.internal.net.www.protocol.https.Handler
 org.apache.harmony.luni.internal.net.www.protocol.jar.Handler
-org.apache.harmony.luni.internal.net.www.protocol.jar.JarURLConnection
+org.apache.harmony.luni.internal.net.www.protocol.jar.JarURLConnectionImpl
+org.apache.harmony.luni.internal.net.www.protocol.jar.JarURLConnectionImpl$1
+org.apache.harmony.luni.internal.net.www.protocol.jar.JarURLConnectionImpl$JarURLConnectionInputStream
 org.apache.harmony.luni.internal.util.TimezoneGetter
 org.apache.harmony.luni.internal.util.ZoneInfo
 org.apache.harmony.luni.internal.util.ZoneInfoDB
-org.apache.harmony.luni.net.GenericIPMreq
 org.apache.harmony.luni.net.PlainSocketImpl
-org.apache.harmony.luni.platform.Endianness
-org.apache.harmony.luni.platform.ICommonDataTypes
-org.apache.harmony.luni.platform.IFileSystem
-org.apache.harmony.luni.platform.IMemorySystem
-org.apache.harmony.luni.platform.INetworkSystem
-org.apache.harmony.luni.platform.OSFileSystem
-org.apache.harmony.luni.platform.OSMemory
-org.apache.harmony.luni.platform.OSNetworkSystem
-org.apache.harmony.luni.platform.Platform
 org.apache.harmony.luni.platform.PlatformAddress
-org.apache.harmony.luni.platform.PlatformAddressFactory
-org.apache.harmony.luni.platform.RuntimeMemorySpy
-org.apache.harmony.luni.util.FloatingPointParser
-org.apache.harmony.luni.util.InputStreamExposer
-org.apache.harmony.luni.util.Msg
-org.apache.harmony.luni.util.NumberConverter
-org.apache.harmony.luni.util.PriviAction
-org.apache.harmony.luni.util.ThreadLocalCache
-org.apache.harmony.luni.util.ThreadLocalCache$1
 org.apache.harmony.luni.util.TwoKeyHashMap
-org.apache.harmony.luni.util.Util
-org.apache.harmony.nio.AddressUtil
-org.apache.harmony.nio.FileChannelFactory
-org.apache.harmony.nio.internal.DirectBuffer
-org.apache.harmony.nio.internal.FileChannelImpl
 org.apache.harmony.nio.internal.FileChannelImpl$RepositioningLock
 org.apache.harmony.nio.internal.LockManager
 org.apache.harmony.nio.internal.LockManager$1
-org.apache.harmony.nio.internal.WriteOnlyFileChannel
-org.apache.harmony.security.asn1.ASN1Any
-org.apache.harmony.security.asn1.ASN1Constructured
+org.apache.harmony.nio.internal.ReadOnlyFileChannel
+org.apache.harmony.security.asn1.ASN1BitString
+org.apache.harmony.security.asn1.ASN1BitString$ASN1NamedBitList
+org.apache.harmony.security.asn1.ASN1Boolean
+org.apache.harmony.security.asn1.ASN1Explicit
 org.apache.harmony.security.asn1.ASN1GeneralizedTime
+org.apache.harmony.security.asn1.ASN1Implicit
 org.apache.harmony.security.asn1.ASN1Integer
-org.apache.harmony.security.asn1.ASN1Oid
-org.apache.harmony.security.asn1.ASN1Sequence
+org.apache.harmony.security.asn1.ASN1OctetString
 org.apache.harmony.security.asn1.ASN1SetOf
 org.apache.harmony.security.asn1.ASN1StringType
-org.apache.harmony.security.asn1.ASN1Type
-org.apache.harmony.security.asn1.ASN1ValueCollection
-org.apache.harmony.security.asn1.BerInputStream
-org.apache.harmony.security.asn1.DerInputStream
-org.apache.harmony.security.asn1.DerOutputStream
+org.apache.harmony.security.asn1.ASN1StringType$1
+org.apache.harmony.security.asn1.ASN1StringType$2
+org.apache.harmony.security.asn1.ASN1StringType$3
+org.apache.harmony.security.asn1.ASN1StringType$4
+org.apache.harmony.security.asn1.ASN1StringType$5
+org.apache.harmony.security.asn1.ASN1StringType$6
+org.apache.harmony.security.asn1.ASN1StringType$7
+org.apache.harmony.security.asn1.ASN1UTCTime
+org.apache.harmony.security.asn1.BitString
+org.apache.harmony.security.fortress.Engine
 org.apache.harmony.security.fortress.SecurityUtils
 org.apache.harmony.security.fortress.Services
 org.apache.harmony.security.pkcs7.ContentInfo
-org.apache.harmony.security.provider.cert.DRLCertFactory
 org.apache.harmony.security.provider.cert.X509CertFactoryImpl
 org.apache.harmony.security.provider.cert.X509CertImpl
 org.apache.harmony.security.provider.cert.X509CertPathImpl
 org.apache.harmony.security.provider.crypto.RandomBitsSupplier
 org.apache.harmony.security.provider.crypto.SHA1PRNG_SecureRandomImpl
-org.apache.harmony.security.provider.crypto.SHA1_MessageDigestImpl
 org.apache.harmony.security.utils.AlgNameMapper
 org.apache.harmony.security.x501.AttributeTypeAndValue
-org.apache.harmony.security.x501.AttributeTypeAndValue$2
+org.apache.harmony.security.x501.AttributeValue
 org.apache.harmony.security.x501.DirectoryString
 org.apache.harmony.security.x501.DirectoryString$1
 org.apache.harmony.security.x501.Name
 org.apache.harmony.security.x501.Name$1
 org.apache.harmony.security.x509.AlgorithmIdentifier
+org.apache.harmony.security.x509.AlgorithmIdentifier$1
 org.apache.harmony.security.x509.BasicConstraints
+org.apache.harmony.security.x509.BasicConstraints$1
 org.apache.harmony.security.x509.Certificate
-org.apache.harmony.security.x509.EDIPartyName
+org.apache.harmony.security.x509.Certificate$1
 org.apache.harmony.security.x509.Extension
 org.apache.harmony.security.x509.Extension$1
+org.apache.harmony.security.x509.Extension$2
 org.apache.harmony.security.x509.Extensions
+org.apache.harmony.security.x509.Extensions$1
 org.apache.harmony.security.x509.GeneralName
 org.apache.harmony.security.x509.GeneralNames
 org.apache.harmony.security.x509.KeyUsage
 org.apache.harmony.security.x509.ORAddress
-org.apache.harmony.security.x509.OtherName
 org.apache.harmony.security.x509.SubjectPublicKeyInfo
+org.apache.harmony.security.x509.SubjectPublicKeyInfo$1
 org.apache.harmony.security.x509.TBSCertificate
+org.apache.harmony.security.x509.TBSCertificate$1
 org.apache.harmony.security.x509.Time
+org.apache.harmony.security.x509.Time$1
 org.apache.harmony.security.x509.Validity
-org.apache.harmony.text.BidiWrapper
-org.apache.harmony.text.internal.nls.Messages
-org.apache.harmony.xml.ExpatAttributes
+org.apache.harmony.security.x509.Validity$1
 org.apache.harmony.xml.ExpatParser
-org.apache.harmony.xml.ExpatParser$ExpatLocator
 org.apache.harmony.xml.ExpatPullParser
-org.apache.harmony.xml.ExpatPullParser$ByteDocument
-org.apache.harmony.xml.ExpatPullParser$CharDocument
-org.apache.harmony.xml.ExpatPullParser$Document$SaxHandler
-org.apache.harmony.xml.ExpatPullParser$NamespaceStack
-org.apache.harmony.xml.ExpatPullParser$StartDocumentEvent
 org.apache.harmony.xml.ExpatReader
-org.apache.harmony.xml.parsers.SAXParserFactoryImpl
-org.apache.harmony.xml.parsers.SAXParserImpl
-org.apache.harmony.xnet.provider.jsse.AbstractSessionContext
 org.apache.harmony.xnet.provider.jsse.ClientSessionContext
-org.apache.harmony.xnet.provider.jsse.FileClientSessionCache
-org.apache.harmony.xnet.provider.jsse.FileClientSessionCache$Impl
-org.apache.harmony.xnet.provider.jsse.KeyManagerFactoryImpl
-org.apache.harmony.xnet.provider.jsse.KeyManagerImpl
-org.apache.harmony.xnet.provider.jsse.NativeCrypto
-org.apache.harmony.xnet.provider.jsse.OpenSSLMessageDigest
-org.apache.harmony.xnet.provider.jsse.OpenSSLMessageDigestJDK
-org.apache.harmony.xnet.provider.jsse.OpenSSLMessageDigestJDK$MD5
-org.apache.harmony.xnet.provider.jsse.OpenSSLServerSocketImpl
 org.apache.harmony.xnet.provider.jsse.OpenSSLSessionImpl
-org.apache.harmony.xnet.provider.jsse.OpenSSLSocketFactoryImpl
 org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl
-org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$LoggerHolder
-org.apache.harmony.xnet.provider.jsse.ProtocolVersion
+org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$Finalizer
+org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$SSLInputStream
+org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl$SSLOutputStream
 org.apache.harmony.xnet.provider.jsse.SSLContextImpl
 org.apache.harmony.xnet.provider.jsse.SSLParameters
-org.apache.harmony.xnet.provider.jsse.ServerSessionContext
 org.apache.harmony.xnet.provider.jsse.TrustManagerFactoryImpl
 org.apache.harmony.xnet.provider.jsse.TrustManagerImpl
 org.apache.http.HttpHost
+org.apache.http.HttpRequestInterceptor
 org.apache.http.HttpVersion
-org.apache.http.NoHttpResponseException
-org.apache.http.ProtocolException
+org.apache.http.auth.AuthSchemeRegistry
 org.apache.http.client.HttpClient
-org.apache.http.client.entity.UrlEncodedFormEntity
-org.apache.http.client.methods.HttpEntityEnclosingRequestBase
-org.apache.http.client.methods.HttpGet
-org.apache.http.client.methods.HttpPost
+org.apache.http.client.RequestDirector
 org.apache.http.client.methods.HttpRequestBase
-org.apache.http.client.utils.URLEncodedUtils
-org.apache.http.conn.BasicManagedEntity
-org.apache.http.conn.params.ConnManagerParams
+org.apache.http.client.protocol.RequestAddCookies
+org.apache.http.client.protocol.RequestDefaultHeaders
+org.apache.http.client.protocol.RequestProxyAuthentication
+org.apache.http.client.protocol.RequestTargetAuthentication
+org.apache.http.client.protocol.ResponseProcessCookies
 org.apache.http.conn.params.ConnManagerParams$1
 org.apache.http.conn.params.ConnRouteParams
-org.apache.http.conn.routing.BasicRouteDirector
 org.apache.http.conn.routing.HttpRoute
 org.apache.http.conn.routing.RouteInfo$LayerType
 org.apache.http.conn.routing.RouteInfo$TunnelType
@@ -1784,99 +1044,79 @@
 org.apache.http.conn.scheme.PlainSocketFactory
 org.apache.http.conn.scheme.Scheme
 org.apache.http.conn.scheme.SchemeRegistry
-org.apache.http.conn.ssl.AbstractVerifier
 org.apache.http.conn.ssl.AllowAllHostnameVerifier
+org.apache.http.conn.ssl.BrowserCompatHostnameVerifier
 org.apache.http.conn.ssl.SSLSocketFactory
+org.apache.http.conn.ssl.StrictHostnameVerifier
 org.apache.http.conn.util.InetAddressUtils
-org.apache.http.entity.AbstractHttpEntity
-org.apache.http.entity.BasicHttpEntity
-org.apache.http.entity.ByteArrayEntity
-org.apache.http.entity.StringEntity
-org.apache.http.impl.AbstractHttpClientConnection
+org.apache.http.cookie.CookieSpecRegistry
 org.apache.http.impl.DefaultConnectionReuseStrategy
 org.apache.http.impl.DefaultHttpResponseFactory
 org.apache.http.impl.EnglishReasonPhraseCatalog
 org.apache.http.impl.HttpConnectionMetricsImpl
 org.apache.http.impl.SocketHttpClientConnection
 org.apache.http.impl.auth.BasicSchemeFactory
+org.apache.http.impl.auth.DigestSchemeFactory
 org.apache.http.impl.client.AbstractAuthenticationHandler
 org.apache.http.impl.client.AbstractHttpClient
-org.apache.http.impl.client.BasicCookieStore
 org.apache.http.impl.client.BasicCredentialsProvider
-org.apache.http.impl.client.DefaultConnectionKeepAliveStrategy
 org.apache.http.impl.client.DefaultHttpClient
 org.apache.http.impl.client.DefaultHttpRequestRetryHandler
+org.apache.http.impl.client.DefaultProxyAuthenticationHandler
 org.apache.http.impl.client.DefaultRedirectHandler
-org.apache.http.impl.client.DefaultRequestDirector
 org.apache.http.impl.client.DefaultTargetAuthenticationHandler
+org.apache.http.impl.client.DefaultUserTokenHandler
 org.apache.http.impl.client.EntityEnclosingRequestWrapper
-org.apache.http.impl.client.RequestWrapper
 org.apache.http.impl.conn.AbstractClientConnAdapter
-org.apache.http.impl.conn.AbstractPooledConnAdapter
 org.apache.http.impl.conn.DefaultClientConnection
 org.apache.http.impl.conn.DefaultClientConnectionOperator
 org.apache.http.impl.conn.DefaultHttpRoutePlanner
 org.apache.http.impl.conn.DefaultResponseParser
-org.apache.http.impl.conn.SingleClientConnManager
-org.apache.http.impl.conn.SingleClientConnManager$1
-org.apache.http.impl.conn.SingleClientConnManager$ConnAdapter
-org.apache.http.impl.conn.SingleClientConnManager$PoolEntry
-org.apache.http.impl.conn.tsccm.AbstractConnPool
+org.apache.http.impl.conn.IdleConnectionHandler
 org.apache.http.impl.conn.tsccm.BasicPoolEntry
-org.apache.http.impl.conn.tsccm.BasicPooledConnAdapter
+org.apache.http.impl.conn.tsccm.BasicPoolEntryRef
 org.apache.http.impl.conn.tsccm.ConnPoolByRoute
-org.apache.http.impl.conn.tsccm.ConnPoolByRoute$1
+org.apache.http.impl.conn.tsccm.RefQueueWorker
+org.apache.http.impl.conn.tsccm.RouteSpecificPool
 org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager
-org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager$1
-org.apache.http.impl.cookie.AbstractCookieAttributeHandler
 org.apache.http.impl.cookie.BasicClientCookie
-org.apache.http.impl.cookie.BestMatchSpec
 org.apache.http.impl.cookie.BestMatchSpecFactory
-org.apache.http.impl.cookie.BrowserCompatSpec
-org.apache.http.impl.cookie.CookieSpecBase
+org.apache.http.impl.cookie.BrowserCompatSpecFactory
 org.apache.http.impl.cookie.DateUtils
-org.apache.http.impl.cookie.DateUtils$DateFormatHolder
-org.apache.http.impl.cookie.NetscapeDomainHandler
-org.apache.http.impl.cookie.NetscapeDraftSpec
-org.apache.http.impl.cookie.RFC2109Spec
-org.apache.http.impl.cookie.RFC2109VersionHandler
-org.apache.http.impl.cookie.RFC2965Spec
+org.apache.http.impl.cookie.NetscapeDraftSpecFactory
+org.apache.http.impl.cookie.RFC2109SpecFactory
+org.apache.http.impl.cookie.RFC2965SpecFactory
+org.apache.http.impl.entity.EntityDeserializer
+org.apache.http.impl.entity.EntitySerializer
+org.apache.http.impl.entity.LaxContentLengthStrategy
 org.apache.http.impl.entity.StrictContentLengthStrategy
-org.apache.http.impl.io.AbstractSessionInputBuffer
-org.apache.http.impl.io.AbstractSessionOutputBuffer
-org.apache.http.impl.io.ChunkedInputStream
-org.apache.http.impl.io.ContentLengthInputStream
 org.apache.http.impl.io.HttpRequestWriter
+org.apache.http.impl.io.HttpTransportMetricsImpl
 org.apache.http.impl.io.SocketInputBuffer
 org.apache.http.impl.io.SocketOutputBuffer
-org.apache.http.message.AbstractHttpMessage
-org.apache.http.message.BasicHeader
-org.apache.http.message.BasicHeaderElement
-org.apache.http.message.BasicHeaderElementIterator
 org.apache.http.message.BasicHeaderValueParser
-org.apache.http.message.BasicHttpRequest
+org.apache.http.message.BasicHttpEntityEnclosingRequest
 org.apache.http.message.BasicHttpResponse
 org.apache.http.message.BasicLineFormatter
 org.apache.http.message.BasicLineParser
-org.apache.http.message.BasicListHeaderIterator
-org.apache.http.message.BasicNameValuePair
-org.apache.http.message.BasicRequestLine
-org.apache.http.message.BasicTokenIterator
-org.apache.http.message.HeaderGroup
-org.apache.http.params.AbstractHttpParams
 org.apache.http.params.BasicHttpParams
-org.apache.http.params.HttpConnectionParams
-org.apache.http.params.HttpProtocolParams
-org.apache.http.protocol.BasicHttpContext
 org.apache.http.protocol.BasicHttpProcessor
 org.apache.http.protocol.HTTP
+org.apache.http.protocol.HttpRequestExecutor
+org.apache.http.protocol.HttpRequestInterceptorList
+org.apache.http.protocol.HttpResponseInterceptorList
+org.apache.http.protocol.RequestConnControl
+org.apache.http.protocol.RequestContent
+org.apache.http.protocol.RequestExpectContinue
+org.apache.http.protocol.RequestTargetHost
+org.apache.http.protocol.RequestUserAgent
+org.apache.http.util.ByteArrayBuffer
 org.apache.http.util.CharArrayBuffer
+org.apache.http.util.EntityUtils
 org.apache.http.util.VersionInfo
-org.bouncycastle.asn1.ASN1Encodable
-org.bouncycastle.asn1.ASN1EncodableVector
-org.bouncycastle.asn1.ASN1Sequence
 org.bouncycastle.asn1.DERBitString
-org.bouncycastle.asn1.DERNull
+org.bouncycastle.asn1.DERIA5String
+org.bouncycastle.asn1.DERInteger
 org.bouncycastle.asn1.DERObject
 org.bouncycastle.asn1.DERObjectIdentifier
 org.bouncycastle.asn1.DEROctetString
@@ -1884,62 +1124,41 @@
 org.bouncycastle.asn1.DERSequence
 org.bouncycastle.asn1.DERSet
 org.bouncycastle.asn1.DERTaggedObject
-org.bouncycastle.asn1.iana.IANAObjectIdentifiers
+org.bouncycastle.asn1.DERUTCTime
+org.bouncycastle.asn1.DERUTF8String
+org.bouncycastle.asn1.OrderedTable
 org.bouncycastle.asn1.nist.NISTObjectIdentifiers
-org.bouncycastle.asn1.oiw.OIWObjectIdentifiers
 org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers
-org.bouncycastle.asn1.x509.BasicConstraints
+org.bouncycastle.asn1.x509.AlgorithmIdentifier
 org.bouncycastle.asn1.x509.RSAPublicKeyStructure
+org.bouncycastle.asn1.x509.SubjectPublicKeyInfo
 org.bouncycastle.asn1.x509.TBSCertificateStructure
 org.bouncycastle.asn1.x509.Time
 org.bouncycastle.asn1.x509.X509CertificateStructure
-org.bouncycastle.asn1.x509.X509DefaultEntryConverter
+org.bouncycastle.asn1.x509.X509Extension
 org.bouncycastle.asn1.x509.X509Extensions
 org.bouncycastle.asn1.x509.X509Name
-org.bouncycastle.crypto.BufferedBlockCipher
-org.bouncycastle.crypto.PBEParametersGenerator
-org.bouncycastle.crypto.digests.GeneralDigest
-org.bouncycastle.crypto.digests.SHA1Digest
+org.bouncycastle.asn1.x509.X509NameElementList
+org.bouncycastle.asn1.x9.X9ObjectIdentifiers
 org.bouncycastle.crypto.engines.AESFastEngine
-org.bouncycastle.crypto.generators.PKCS12ParametersGenerator
-org.bouncycastle.crypto.macs.HMac
-org.bouncycastle.crypto.paddings.PKCS7Padding
-org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher
-org.bouncycastle.crypto.params.KeyParameter
-org.bouncycastle.jce.provider.BouncyCastleProvider
 org.bouncycastle.jce.provider.CertPathValidatorUtilities
-org.bouncycastle.jce.provider.IndexedPKIXParameters
-org.bouncycastle.jce.provider.JCEBlockCipher
 org.bouncycastle.jce.provider.JCEBlockCipher$AES
-org.bouncycastle.jce.provider.JCEMac
-org.bouncycastle.jce.provider.JCEMac$SHA1
 org.bouncycastle.jce.provider.JCERSAPublicKey
-org.bouncycastle.jce.provider.JDKKeyFactory
+org.bouncycastle.jce.provider.JDKKeyFactory$RSA
 org.bouncycastle.jce.provider.JDKKeyStore
-org.bouncycastle.jce.provider.JDKX509CertificateFactory
+org.bouncycastle.jce.provider.JDKKeyStore$StoreEntry
 org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi
-org.bouncycastle.jce.provider.PKIXPolicyNode
-org.bouncycastle.jce.provider.WrapCipherSpi
+org.bouncycastle.jce.provider.RSAUtil
 org.bouncycastle.jce.provider.X509CertificateObject
-org.ccil.cowan.tagsoup.AttributesImpl
-org.ccil.cowan.tagsoup.Element
-org.ccil.cowan.tagsoup.ElementType
 org.ccil.cowan.tagsoup.HTMLScanner
-org.ccil.cowan.tagsoup.HTMLSchema
 org.ccil.cowan.tagsoup.Parser
-org.ccil.cowan.tagsoup.Schema
 org.json.JSONArray
 org.json.JSONObject
 org.json.JSONStringer
-org.json.JSONTokener
 org.kxml2.io.KXmlParser
 org.kxml2.io.KXmlSerializer
-org.openssl.NativeBN
-org.xml.sax.Attributes
-org.xml.sax.InputSource
-org.xml.sax.helpers.AttributesImpl
 org.xml.sax.helpers.DefaultHandler
-org.xmlpull.v1.XmlPullParser
+org.xml.sax.helpers.NewInstance
 org.xmlpull.v1.XmlPullParserFactory
-org.xmlpull.v1.XmlSerializer
+org.xmlpull.v1.sax2.Driver
 sun.misc.Unsafe
diff --git a/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java b/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java
index a5d3b22..be889b7 100755
--- a/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java
+++ b/telephony/java/com/android/internal/telephony/cdma/CDMAPhone.java
@@ -561,15 +561,7 @@
     public DataState getDataConnectionState() {
         DataState ret = DataState.DISCONNECTED;
 
-        if ((SystemProperties.get("adb.connected", "").length() > 0)
-                && (SystemProperties.get("android.net.use-adb-networking", "")
-                        .length() > 0)) {
-            // We're connected to an ADB host and we have USB networking
-            // turned on. No matter what the radio state is,
-            // we report data connected
-
-            ret = DataState.CONNECTED;
-        } else if (mSST == null) {
+        if (mSST == null) {
              // Radio Technology Change is ongoning, dispose() and removeReferences() have
              // already been called
 
diff --git a/telephony/java/com/android/internal/telephony/gsm/GSMPhone.java b/telephony/java/com/android/internal/telephony/gsm/GSMPhone.java
index 56499a8..c0ee0b0 100755
--- a/telephony/java/com/android/internal/telephony/gsm/GSMPhone.java
+++ b/telephony/java/com/android/internal/telephony/gsm/GSMPhone.java
@@ -293,15 +293,7 @@
     public DataState getDataConnectionState() {
         DataState ret = DataState.DISCONNECTED;
 
-        if ((SystemProperties.get("adb.connected", "").length() > 0)
-                && (SystemProperties.get("android.net.use-adb-networking", "")
-                .length() > 0)) {
-            // We're connected to an ADB host and we have USB networking
-            // turned on. No matter what the radio state is,
-            // we report data connected
-
-            ret = DataState.CONNECTED;
-        } else if (mSST == null) {
+        if (mSST == null) {
             // Radio Technology Change is ongoning, dispose() and removeReferences() have
             // already been called
 
diff --git a/tests/AndroidTests/src/com/android/unit_tests/UriTest.java b/tests/AndroidTests/src/com/android/unit_tests/UriTest.java
index d17e2c3..42066d9 100644
--- a/tests/AndroidTests/src/com/android/unit_tests/UriTest.java
+++ b/tests/AndroidTests/src/com/android/unit_tests/UriTest.java
@@ -541,4 +541,33 @@
         assertEquals(nestedUrl,
                 Uri.decode(uri.getQueryParameters("nested").get(0)));
     }
+
+    public void testGetQueryParameterEdgeCases() {
+        Uri uri;
+
+        // key at beginning of URL
+        uri = Uri.parse("http://test/").buildUpon()
+            .appendQueryParameter("key", "a b")
+            .appendQueryParameter("keya", "c d")
+            .appendQueryParameter("bkey", "e f")
+            .build();
+        assertEquals("a b", uri.getQueryParameter("key"));
+
+        // key in middle of URL
+        uri = Uri.parse("http://test/").buildUpon()
+            .appendQueryParameter("akeyb", "a b")
+            .appendQueryParameter("keya", "c d")
+            .appendQueryParameter("key", "e f")
+            .appendQueryParameter("bkey", "g h")
+            .build();
+        assertEquals("e f", uri.getQueryParameter("key"));
+
+        // key at end of URL
+        uri = Uri.parse("http://test/").buildUpon()
+            .appendQueryParameter("akeyb", "a b")
+            .appendQueryParameter("keya", "c d")
+            .appendQueryParameter("key", "y z")
+            .build();
+        assertEquals("y z", uri.getQueryParameter("key"));
+    }
 }
diff --git a/tools/preload/20080522.compiled b/tools/preload/20080522.compiled
new file mode 100644
index 0000000..a2af422
--- /dev/null
+++ b/tools/preload/20080522.compiled
Binary files differ
diff --git a/tools/preload/20090811.compiled b/tools/preload/20090811.compiled
new file mode 100644
index 0000000..6dbeca0
--- /dev/null
+++ b/tools/preload/20090811.compiled
Binary files differ
diff --git a/tools/preload/20090922.compiled b/tools/preload/20090922.compiled
deleted file mode 100644
index fc66405..0000000
--- a/tools/preload/20090922.compiled
+++ /dev/null
Binary files differ
diff --git a/tools/preload/Android.mk b/tools/preload/Android.mk
index 65b7d1a..f325870 100644
--- a/tools/preload/Android.mk
+++ b/tools/preload/Android.mk
@@ -8,7 +8,6 @@
 	MemoryUsage.java \
 	Operation.java \
 	Policy.java \
-	PrintBugReports.java \
 	PrintCsv.java \
 	PrintHtmlDiff.java \
 	PrintPsTree.java \
diff --git a/tools/preload/LoadedClass.java b/tools/preload/LoadedClass.java
index 02cff10..86e5dfc 100644
--- a/tools/preload/LoadedClass.java
+++ b/tools/preload/LoadedClass.java
@@ -15,11 +15,7 @@
  */
 
 import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 
 /**
  * A loaded class.
@@ -54,30 +50,6 @@
         this.systemClass = systemClass;
     }
 
-    /**
-     * Returns true if this class was loaded by more than one proc.
-     */
-    boolean isSharable() {
-        Set<String> procNames = new HashSet<String>();
-        for (Operation load : loads) {
-            if (load.process.fromZygote()) {
-                procNames.add(load.process.name);
-                if (procNames.size() > 1) {
-                    return true;
-                }
-            }
-        }
-        for (Operation init : initializations) {
-            if (init.process.fromZygote()) {
-                procNames.add(init.process.name);
-                if (procNames.size() > 1) {
-                    return true;
-                }
-            }
-        }
-        return false;
-    }
-
     void measureMemoryUsage() {
         this.memoryUsage = MemoryUsage.forClass(name);
     }
diff --git a/tools/preload/PrintBugReports.java b/tools/preload/PrintBugReports.java
deleted file mode 100644
index a6d4187..0000000
--- a/tools/preload/PrintBugReports.java
+++ /dev/null
@@ -1,272 +0,0 @@
-import java.io.File;
-import java.io.IOException;
-import java.io.PrintStream;
-import java.io.DataInputStream;
-import java.io.FileInputStream;
-import java.util.Map;
-import java.util.List;
-import java.util.HashMap;
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.Set;
-import java.util.TreeSet;
-import java.util.Iterator;
-
-/**
- * Prints HTML reports that can be attached to bugs.
- */
-public class PrintBugReports {
-
-    private static final String DIR = "out/preload";
-    private static boolean PRINT_MEMORY_USAGE = false;
-
-    private static final Comparator<LoadedClass> DEFAULT_ORDER
-            = new Comparator<LoadedClass>() {
-        public int compare(LoadedClass a, LoadedClass b) {
-            // Longest load time first.
-            int diff = b.medianTimeMicros() - a.medianTimeMicros();
-            if (diff != 0) {
-                return diff;
-            }
-
-            return a.name.compareTo(b.name);
-        }
-    };
-
-    public static void main(String[] args)
-            throws IOException, ClassNotFoundException {
-        Root root = Root.fromFile(args[0]);
-        String baseUrl = "";
-        if (args.length > 1) {
-            baseUrl = args[1];
-        }
-
-        new File(DIR).mkdirs();
-
-        Map<String, List<Proc>> procsByName = new HashMap<String, List<Proc>>();
-        for (Proc proc : root.processes.values()) {
-            if (proc.fromZygote()) {
-                List<Proc> procs = procsByName.get(proc.name);
-                if (procs == null) {
-                    procs = new ArrayList<Proc>();
-                    procsByName.put(proc.name, procs);
-                }
-                procs.add(proc);
-            }
-        }
-
-        Set<LoadedClass> coreClasses = new TreeSet<LoadedClass>(DEFAULT_ORDER);
-        Set<LoadedClass> frameworkClasses = new TreeSet<LoadedClass>(DEFAULT_ORDER);
-
-        for (List<Proc> procs : procsByName.values()) {
-            Proc first = procs.get(0);
-            Set<LoadedClass> classes = new TreeSet<LoadedClass>(DEFAULT_ORDER);
-            Set<LoadedClass> sharedClasses
-                    = new TreeSet<LoadedClass>(DEFAULT_ORDER);
-            for (Proc proc : procs) {
-                for (Operation operation : proc.operations) {
-                    LoadedClass clazz = operation.loadedClass;
-                    if (clazz.isSharable() && clazz.systemClass) {
-                        if (clazz.name.startsWith("dalvik")
-                                || clazz.name.startsWith("org")
-                                || clazz.name.startsWith("java")) {
-                            coreClasses.add(clazz);
-                        } else {
-                            frameworkClasses.add(clazz);
-                        }
-                        sharedClasses.add(clazz);
-                    } else {
-                        classes.add(clazz);
-                    }
-                }
-            }
-            printApplicationHtml(first.name, root.baseline, classes,
-                    sharedClasses);
-        }
-
-        printHtml("core", root.baseline, coreClasses);
-        printHtml("framework", root.baseline, frameworkClasses);
-
-        PrintStream out = new PrintStream(DIR + "/toc.html");
-        out.println("<html><body>");
-        out.println("<a href='" + baseUrl
-                + "/core.html'>core</a><br/>");
-        out.println("<a href='" + baseUrl
-                + "/framework.html'>framework</a><br/>");
-
-        for (String s : new TreeSet<String>(procsByName.keySet())) {
-            out.println("<a href='" + baseUrl + "/"
-                    + s + ".html'>" + s + "</a><br/>");
-        }
-        out.println("</body></html>");
-        out.close();
-    }
-
-    static void printApplicationHtml(String name, MemoryUsage baseline,
-            Iterable<LoadedClass> classes, Iterable<LoadedClass> sharedClasses)
-            throws IOException {
-        PrintStream out = new PrintStream(DIR + "/" + name + ".html");
-
-        printHeader(name, out);
-        out.println("<body>");
-        out.println("<h1><tt>" + name + "</tt></h1>");
-        out.println("<p><i>Click a column header to sort by that column.</i></p>");
-
-        out.println("<p><a href=\"#shared\">Shared Classes</a></p>");
-
-        out.println("<h3>Application-Specific Classes</h3>");
-
-        out.println("<p>These classes were loaded only by " + name + ". If"
-                + " the value of the <i>Preloaded</i> column is <i>yes</i> or "
-                + " <i>no</i>, the class is in the boot classpath; if it's not"
-                + " part of the published API, consider"
-                + " moving it into the APK.</p>");
-
-        printTable(out, baseline, classes, false);
-
-        out.println("<p><a href=\"#\">Top</a></p>");
-
-        out.println("<a name=\"shared\"/><h3>Shared Classes</h3>");
-
-        out.println("<p>These classes are in the boot classpath. They are used"
-                + " by " + name + " as well as others.");
-
-        printTable(out, baseline, sharedClasses, true);
-
-        out.println("</body></html>");
-        out.close();
-    }
-
-    static void printHtml(String name, MemoryUsage baseline,
-            Iterable<LoadedClass> classes)
-            throws IOException {
-        PrintStream out = new PrintStream(DIR + "/" + name + ".html");
-
-        printHeader(name, out);
-        out.println("<body>");
-        out.println("<h1><tt>" + name + "</tt></h1>");
-        out.println("<p><i>Click a column header to sort by that column.</i></p>");
-
-        printTable(out, baseline, classes, true);
-
-        out.println("</body></html>");
-        out.close();
-    }
-
-    private static void printHeader(String name, PrintStream out)
-            throws IOException {
-        out.println("<html><head>");
-        out.println("<title>" + name + "</title>");
-        out.println("<style>");
-        out.println("a, th, td, h1, h3, p { font-family: arial }");
-        out.println("th, td { font-size: small }");
-        out.println("</style>");
-        out.println("<script language=\"javascript\">");
-        out.write(SCRIPT);
-        out.println("</script>");
-        out.println("</head>");
-    }
-
-    static void printTable(PrintStream out, MemoryUsage baseline,
-            Iterable<LoadedClass> classes, boolean showProcNames) {
-        out.println("<p><table border=\"1\" cellpadding=\"5\""
-                + " class=\"sortable\" cellspacing=\"0\">");
-
-        out.println("<thead bgcolor=\"#eeeeee\"><tr>");
-        out.println("<th>Name</th>");
-        out.println("<th>Preloaded</th>");
-        out.println("<th>Total Time (us)</th>");
-        out.println("<th>Load Time (us)</th>");
-        out.println("<th>Init Time (us)</th>");
-        if (PRINT_MEMORY_USAGE) {
-            out.println("<th>Total Heap (B)</th>");
-            out.println("<th>Dalvik Heap (B)</th>");
-            out.println("<th>Native Heap (B)</th>");
-            out.println("<th>Total Pages (kB)</th>");
-            out.println("<th>Dalvik Pages (kB)</th>");
-            out.println("<th>Native Pages (kB)</th>");
-            out.println("<th>Other Pages (kB)</th>");
-        }
-        if (showProcNames) {
-            out.println("<th>Loaded by</th>");
-        }
-        out.println("</tr></thead>");
-
-        for (LoadedClass clazz : classes) {
-            out.println("<tr>");
-            out.println("<td>" + clazz.name + "</td>");
-
-            out.println("<td>" + ((clazz.systemClass)
-                    ? ((clazz.preloaded) ? "yes" : "no") : "n/a") + "</td>");
-
-            out.println("<td>" + clazz.medianTimeMicros() + "</td>");
-            out.println("<td>" + clazz.medianLoadTimeMicros() + "</td>");
-            out.println("<td>" + clazz.medianInitTimeMicros() + "</td>");
-
-            if (PRINT_MEMORY_USAGE) {
-                if (clazz.memoryUsage.isAvailable()) {
-                    MemoryUsage subtracted
-                            = clazz.memoryUsage.subtract(baseline);
-
-                    long totalHeap = subtracted.javaHeapSize()
-                            + subtracted.nativeHeapSize;
-                    out.println("<td>" + totalHeap + "</td>");
-                    out.println("<td>" + subtracted.javaHeapSize() + "</td>");
-                    out.println("<td>" + subtracted.nativeHeapSize + "</td>");
-
-                    out.println("<td>" + subtracted.totalPages() + "</td>");
-                    out.println("<td>" + subtracted.javaPagesInK() + "</td>");
-                    out.println("<td>" + subtracted.nativePagesInK() + "</td>");
-                    out.println("<td>" + subtracted.otherPagesInK() + "</td>");
-                } else {
-                    for (int i = 0; i < 7; i++) {
-                        out.println("<td>&nbsp;</td>");
-                    }
-                }
-            }
-
-            if (showProcNames) {
-                out.println("<td>");
-                Set<String> procNames = new TreeSet<String>();
-                for (Operation op : clazz.loads) {
-                    procNames.add(op.process.name);
-                }
-                for (Operation op : clazz.initializations) {
-                    procNames.add(op.process.name);
-                }
-                if (procNames.size() <= 3) {
-                    for (String name : procNames) {
-                        out.print(name + "<br/>");
-                    }
-                } else {
-                    Iterator<String> i = procNames.iterator();
-                    out.print(i.next() + "<br/>");
-                    out.print(i.next() + "<br/>");
-                    out.print("...and " + (procNames.size() - 2)
-                            + " others.");
-                }
-                out.println("</td>");
-            }
-
-            out.println("</tr>");
-        }
-
-        out.println("</table></p>");
-    }
-
-    static byte[] SCRIPT;
-    static {
-        try {
-            File script = new File(
-                    "frameworks/base/tools/preload/sorttable.js");
-            int length = (int) script.length();
-            SCRIPT = new byte[length];
-            DataInputStream in = new DataInputStream(
-                    new FileInputStream(script));
-            in.readFully(SCRIPT);
-            in.close();
-        } catch (IOException e) {
-            throw new RuntimeException(e);
-        }
-    }
-}
diff --git a/tools/preload/Root.java b/tools/preload/Root.java
index 3f12dea..0bc29bf 100644
--- a/tools/preload/Root.java
+++ b/tools/preload/Root.java
@@ -46,8 +46,7 @@
     final Map<String, LoadedClass> loadedClasses
             = new HashMap<String, LoadedClass>();
 
-//    MemoryUsage baseline = MemoryUsage.baseline();
-    MemoryUsage baseline = MemoryUsage.NOT_AVAILABLE;
+    MemoryUsage baseline = MemoryUsage.baseline();
 
     /**
      * Records class loads and initializations.
@@ -74,7 +73,7 @@
                     if (loadedClass.systemClass) {
                         // Only measure memory for classes in the boot
                         // classpath.
-//                        loadedClass.measureMemoryUsage();
+                        loadedClass.measureMemoryUsage();
                     }
                     loadedClasses.put(name, loadedClass);
                 }
diff --git a/tools/preload/WritePreloadedClassFile.java b/tools/preload/WritePreloadedClassFile.java
index 757d17d3..96c539b 100644
--- a/tools/preload/WritePreloadedClassFile.java
+++ b/tools/preload/WritePreloadedClassFile.java
@@ -32,7 +32,7 @@
     /**
      * Preload any class that take longer to load than MIN_LOAD_TIME_MICROS us.
      */
-    static final int MIN_LOAD_TIME_MICROS = 1000;
+    static final int MIN_LOAD_TIME_MICROS = 1250;
 
     public static void main(String[] args) throws IOException,
             ClassNotFoundException {
diff --git a/tools/preload/preload.ipr b/tools/preload/preload.ipr
index dddca3b..0c9621c 100644
--- a/tools/preload/preload.ipr
+++ b/tools/preload/preload.ipr
@@ -364,7 +364,7 @@
   </component>
   <component name="ProjectFileVersion" converted="true" />
   <component name="ProjectKey">
-    <option name="state" value="project:///Volumes/Android/eclair/frameworks/base/tools/preload/preload.ipr" />
+    <option name="state" value="project:///Volumes/Android/donut/frameworks/base/tools/preload/preload.ipr" />
   </component>
   <component name="ProjectModuleManager">
     <modules>
diff --git a/tools/preload/sorttable.js b/tools/preload/sorttable.js
index f03859e..25bccb2 100644
--- a/tools/preload/sorttable.js
+++ b/tools/preload/sorttable.js
@@ -6,7 +6,7 @@
   
   Instructions:
   Download this file
-  Add <script src="sorttable.js"> to your HTML
+  Add <script src="sorttable.js"></script> to your HTML
   Add class="sortable" to any table you'd like to make sortable
   Click on the headers to sort
   
@@ -88,7 +88,6 @@
 	      }
 	      // make it clickable to sort
 	      headrow[i].sorttable_columnindex = i;
-	      headrow[i].style.cursor = "pointer";
 	      headrow[i].sorttable_tbody = table.tBodies[0];
 	      dean_addEvent(headrow[i],"click", function(e) {