Merge "Remove dithering support."
diff --git a/Android.mk b/Android.mk
index b9157fe..e577b91 100644
--- a/Android.mk
+++ b/Android.mk
@@ -143,6 +143,8 @@
 	core/java/android/view/accessibility/IAccessibilityManager.aidl \
 	core/java/android/view/accessibility/IAccessibilityManagerClient.aidl \
 	core/java/android/view/IApplicationToken.aidl \
+	core/java/android/view/IInputFilter.aidl \
+	core/java/android/view/IInputFilterHost.aidl \
 	core/java/android/view/IOnKeyguardExitResult.aidl \
 	core/java/android/view/IRotationWatcher.aidl \
 	core/java/android/view/IWindow.aidl \
diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java
index 5e21403..cc2f2d8 100644
--- a/core/java/android/app/ContextImpl.java
+++ b/core/java/android/app/ContextImpl.java
@@ -361,10 +361,10 @@
                     return PolicyManager.makeNewLayoutInflater(ctx.getOuterContext());
                 }});
 
-        registerService(LOCATION_SERVICE, new StaticServiceFetcher() {
-                public Object createStaticService() {
+        registerService(LOCATION_SERVICE, new ServiceFetcher() {
+                public Object createService(ContextImpl ctx) {
                     IBinder b = ServiceManager.getService(LOCATION_SERVICE);
-                    return new LocationManager(ILocationManager.Stub.asInterface(b));
+                    return new LocationManager(ctx, ILocationManager.Stub.asInterface(b));
                 }});
 
         registerService(NETWORK_POLICY_SERVICE, new ServiceFetcher() {
diff --git a/core/java/android/view/AccessibilityInteractionController.java b/core/java/android/view/AccessibilityInteractionController.java
index d0c393c..fbda474 100644
--- a/core/java/android/view/AccessibilityInteractionController.java
+++ b/core/java/android/view/AccessibilityInteractionController.java
@@ -141,7 +141,7 @@
     }
 
     public void findAccessibilityNodeInfoByAccessibilityIdClientThread(
-            long accessibilityNodeId, int windowLeft, int windowTop, int interactionId,
+            long accessibilityNodeId, int interactionId,
             IAccessibilityInteractionConnectionCallback callback, int flags, int interrogatingPid,
             long interrogatingTid) {
         Message message = mHandler.obtainMessage();
@@ -153,12 +153,6 @@
         args.argi2 = AccessibilityNodeInfo.getVirtualDescendantId(accessibilityNodeId);
         args.argi3 = interactionId;
         args.arg1 = callback;
-
-        SomeArgs moreArgs = mPool.acquire();
-        moreArgs.argi1 = windowLeft;
-        moreArgs.argi2 = windowTop;
-        args.arg2 = moreArgs;
-
         message.obj = args;
 
         // If the interrogation is performed by the same thread as the main UI
@@ -183,11 +177,6 @@
         final IAccessibilityInteractionConnectionCallback callback =
             (IAccessibilityInteractionConnectionCallback) args.arg1;
 
-        SomeArgs moreArgs = (SomeArgs) args.arg2;
-        mViewRootImpl.mAttachInfo.mActualWindowLeft = moreArgs.argi1;
-        mViewRootImpl.mAttachInfo.mActualWindowTop = moreArgs.argi2;
-
-        mPool.release(moreArgs);
         mPool.release(args);
 
         List<AccessibilityNodeInfo> infos = mTempAccessibilityNodeInfoList;
@@ -220,9 +209,8 @@
     }
 
     public void findAccessibilityNodeInfoByViewIdClientThread(long accessibilityNodeId,
-            int viewId, int windowLeft, int windowTop, int interactionId,
-            IAccessibilityInteractionConnectionCallback callback, int flags, int interrogatingPid,
-            long interrogatingTid) {
+            int viewId, int interactionId, IAccessibilityInteractionConnectionCallback callback,
+            int flags, int interrogatingPid, long interrogatingTid) {
         Message message = mHandler.obtainMessage();
         message.what = PrivateHandler.MSG_FIND_ACCESSIBLITY_NODE_INFO_BY_VIEW_ID;
         message.arg1 = flags;
@@ -233,11 +221,6 @@
         args.argi2 = interactionId;
         args.arg1 = callback;
 
-        SomeArgs moreArgs = mPool.acquire();
-        moreArgs.argi1 = windowLeft;
-        moreArgs.argi2 = windowTop;
-        args.arg2 = moreArgs;
-
         message.obj = args;
 
         // If the interrogation is performed by the same thread as the main UI
@@ -262,11 +245,6 @@
         final IAccessibilityInteractionConnectionCallback callback =
             (IAccessibilityInteractionConnectionCallback) args.arg1;
 
-        SomeArgs moreArgs = (SomeArgs) args.arg2;
-        mViewRootImpl.mAttachInfo.mActualWindowLeft = moreArgs.argi1;
-        mViewRootImpl.mAttachInfo.mActualWindowTop = moreArgs.argi2;
-
-        mPool.release(moreArgs);
         mPool.release(args);
 
         AccessibilityNodeInfo info = null;
@@ -300,25 +278,19 @@
     }
 
     public void findAccessibilityNodeInfosByTextClientThread(long accessibilityNodeId,
-            String text, int windowLeft, int windowTop, int interactionId,
-            IAccessibilityInteractionConnectionCallback callback, int flags,
-            int interrogatingPid, long interrogatingTid) {
+            String text, int interactionId, IAccessibilityInteractionConnectionCallback callback,
+            int flags, int interrogatingPid, long interrogatingTid) {
         Message message = mHandler.obtainMessage();
         message.what = PrivateHandler.MSG_FIND_ACCESSIBLITY_NODE_INFO_BY_TEXT;
         message.arg1 = flags;
 
         SomeArgs args = mPool.acquire();
         args.arg1 = text;
+        args.arg2 = callback;
         args.argi1 = AccessibilityNodeInfo.getAccessibilityViewId(accessibilityNodeId);
         args.argi2 = AccessibilityNodeInfo.getVirtualDescendantId(accessibilityNodeId);
         args.argi3 = interactionId;
 
-        SomeArgs moreArgs = mPool.acquire();
-        moreArgs.arg1 = callback;
-        moreArgs.argi1 = windowLeft;
-        moreArgs.argi2 = windowTop;
-        args.arg2 = moreArgs;
-
         message.obj = args;
 
         // If the interrogation is performed by the same thread as the main UI
@@ -338,17 +310,11 @@
 
         SomeArgs args = (SomeArgs) message.obj;
         final String text = (String) args.arg1;
+        final IAccessibilityInteractionConnectionCallback callback =
+            (IAccessibilityInteractionConnectionCallback) args.arg2;
         final int accessibilityViewId = args.argi1;
         final int virtualDescendantId = args.argi2;
         final int interactionId = args.argi3;
-
-        SomeArgs moreArgs = (SomeArgs) args.arg2;
-        final IAccessibilityInteractionConnectionCallback callback =
-            (IAccessibilityInteractionConnectionCallback) moreArgs.arg1;
-        mViewRootImpl.mAttachInfo.mActualWindowLeft = moreArgs.argi1;
-        mViewRootImpl.mAttachInfo.mActualWindowTop = moreArgs.argi2;
-
-        mPool.release(moreArgs);
         mPool.release(args);
 
         List<AccessibilityNodeInfo> infos = null;
@@ -409,9 +375,9 @@
         }
     }
 
-    public void findFocusClientThread(long accessibilityNodeId, int focusType, int windowLeft,
-            int windowTop, int interactionId, IAccessibilityInteractionConnectionCallback callback,
-            int flags, int interogatingPid, long interrogatingTid) {
+    public void findFocusClientThread(long accessibilityNodeId, int focusType, int interactionId,
+            IAccessibilityInteractionConnectionCallback callback, int flags, int interogatingPid,
+            long interrogatingTid) {
         Message message = mHandler.obtainMessage();
         message.what = PrivateHandler.MSG_FIND_FOCUS;
         message.arg1 = flags;
@@ -423,11 +389,6 @@
         args.argi3 = AccessibilityNodeInfo.getVirtualDescendantId(accessibilityNodeId);
         args.arg1 = callback;
 
-        SomeArgs moreArgs = mPool.acquire();
-        moreArgs.argi1 = windowLeft;
-        moreArgs.argi2 = windowTop;
-        args.arg2 = moreArgs;
-
         message.obj = args;
 
         // If the interrogation is performed by the same thread as the main UI
@@ -453,11 +414,6 @@
         final IAccessibilityInteractionConnectionCallback callback =
             (IAccessibilityInteractionConnectionCallback) args.arg1;
 
-        SomeArgs moreArgs = (SomeArgs) args.arg2;
-        mViewRootImpl.mAttachInfo.mActualWindowLeft = moreArgs.argi1;
-        mViewRootImpl.mAttachInfo.mActualWindowTop = moreArgs.argi2;
-
-        mPool.release(moreArgs);
         mPool.release(args);
 
         AccessibilityNodeInfo focused = null;
@@ -516,9 +472,9 @@
         }
     }
 
-    public void focusSearchClientThread(long accessibilityNodeId, int direction, int windowLeft,
-            int windowTop, int interactionId, IAccessibilityInteractionConnectionCallback callback,
-            int flags, int interogatingPid, long interrogatingTid) {
+    public void focusSearchClientThread(long accessibilityNodeId, int direction, int interactionId,
+            IAccessibilityInteractionConnectionCallback callback, int flags, int interogatingPid,
+            long interrogatingTid) {
         Message message = mHandler.obtainMessage();
         message.what = PrivateHandler.MSG_FOCUS_SEARCH;
         message.arg1 = flags;
@@ -530,11 +486,6 @@
         args.argi3 = interactionId;
         args.arg1 = callback;
 
-        SomeArgs moreArgs = mPool.acquire();
-        moreArgs.argi1 = windowLeft;
-        moreArgs.argi2 = windowTop;
-        args.arg2 = moreArgs;
-
         message.obj = args;
 
         // If the interrogation is performed by the same thread as the main UI
@@ -560,11 +511,6 @@
         final IAccessibilityInteractionConnectionCallback callback =
             (IAccessibilityInteractionConnectionCallback) args.arg1;
 
-        SomeArgs moreArgs = (SomeArgs) args.arg2;
-        mViewRootImpl.mAttachInfo.mActualWindowLeft = moreArgs.argi1;
-        mViewRootImpl.mAttachInfo.mActualWindowTop = moreArgs.argi2;
-
-        mPool.release(moreArgs);
         mPool.release(args);
 
         AccessibilityNodeInfo next = null;
diff --git a/core/java/android/view/IInputFilter.aidl b/core/java/android/view/IInputFilter.aidl
new file mode 100644
index 0000000..fead5f6
--- /dev/null
+++ b/core/java/android/view/IInputFilter.aidl
@@ -0,0 +1,32 @@
+/**
+ * Copyright (c) 2012, 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.
+ */
+
+package android.view;
+
+import android.view.IInputFilterHost;
+import android.view.InputEvent;
+
+/**
+ * Interface for implementing an filter which observes and
+ * potentially transforms the input event stream in the system.
+ *
+ * @hide
+ */
+oneway interface IInputFilter {
+    void install(IInputFilterHost host);
+    void uninstall();
+    void filterInputEvent(in InputEvent event, int policyFlags);
+}
diff --git a/packages/SystemUI/res/values-sw720dp-port/dimens.xml b/core/java/android/view/IInputFilterHost.aidl
similarity index 64%
rename from packages/SystemUI/res/values-sw720dp-port/dimens.xml
rename to core/java/android/view/IInputFilterHost.aidl
index 74b266d..93b8239 100644
--- a/packages/SystemUI/res/values-sw720dp-port/dimens.xml
+++ b/core/java/android/view/IInputFilterHost.aidl
@@ -1,6 +1,5 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- * Copyright (c) 2011, The Android Open Source Project
+/**
+ * Copyright (c) 2012, 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.
@@ -13,10 +12,17 @@
  * 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>
-    <!-- gap on either side of status bar notification icons -->
-    <dimen name="status_bar_icon_padding">2dp</dimen>
-</resources>
+ */
 
+package android.view;
+
+import android.view.InputEvent;
+
+/**
+ * Interface for calls from an input filter to its host.
+ *
+ * @hide
+ */
+oneway interface IInputFilterHost {
+    void sendInputEvent(in InputEvent event, int policyFlags);
+}
diff --git a/core/java/android/view/IWindowManager.aidl b/core/java/android/view/IWindowManager.aidl
index 4d4eec7..5941e44 100644
--- a/core/java/android/view/IWindowManager.aidl
+++ b/core/java/android/view/IWindowManager.aidl
@@ -23,6 +23,7 @@
 import android.content.res.Configuration;
 import android.graphics.Bitmap;
 import android.graphics.Point;
+import android.graphics.Rect;
 import android.os.IRemoteCallback;
 import android.view.IApplicationToken;
 import android.view.IOnKeyguardExitResult;
@@ -33,6 +34,7 @@
 import android.view.MotionEvent;
 import android.view.InputChannel;
 import android.view.InputDevice;
+import  android.view.IInputFilter;
 
 /**
  * System private interface to the window manager.
@@ -208,4 +210,24 @@
      * Lock the device immediately.
      */
     void lockNow();
+
+    /**
+     * Gets the token for the focused window.
+     */
+    IBinder getFocusedWindowToken();
+
+    /**
+     * Gets the frame on the screen of the window given its token.
+     */
+    boolean getWindowFrame(IBinder token, out Rect outBounds);
+
+    /**
+     * Gets the compatibility scale of e window given its token.
+     */
+    float getWindowCompatibilityScale(IBinder windowToken);
+
+    /**
+     * Sets an input filter for manipulating the input event stream.
+     */
+    void setInputFilter(in IInputFilter filter);
 }
diff --git a/services/java/com/android/server/input/InputFilter.java b/core/java/android/view/InputFilter.java
similarity index 94%
rename from services/java/com/android/server/input/InputFilter.java
rename to core/java/android/view/InputFilter.java
index 2ce0a02..c25b87b 100644
--- a/services/java/com/android/server/input/InputFilter.java
+++ b/core/java/android/view/InputFilter.java
@@ -14,13 +14,13 @@
  * limitations under the License.
  */
 
-package com.android.server.input;
-
-import com.android.server.wm.WindowManagerService;
+package android.view;
 
 import android.os.Handler;
 import android.os.Looper;
 import android.os.Message;
+import android.os.RemoteException;
+import android.view.IInputFilter;
 import android.view.InputEvent;
 import android.view.InputEventConsistencyVerifier;
 import android.view.KeyEvent;
@@ -94,15 +94,14 @@
  * It may be prudent to disable automatic key repeating for synthetic key events
  * by setting the {@link WindowManagerPolicy#FLAG_DISABLE_KEY_REPEAT} policy flag.
  * </p>
+ *
+ * @hide
  */
-public abstract class InputFilter {
+public abstract class InputFilter extends IInputFilter.Stub {
     private static final int MSG_INSTALL = 1;
     private static final int MSG_UNINSTALL = 2;
     private static final int MSG_INPUT_EVENT = 3;
 
-    private final H mH;
-    private Host mHost;
-
     // Consistency verifiers for debugging purposes.
     private final InputEventConsistencyVerifier mInboundInputEventConsistencyVerifier =
             InputEventConsistencyVerifier.isInstrumentationEnabled() ?
@@ -115,6 +114,10 @@
                             InputEventConsistencyVerifier.FLAG_RAW_DEVICE_INPUT,
                             "InputFilter#OutboundInputEventConsistencyVerifier") : null;
 
+    private final H mH;
+
+    private IInputFilterHost mHost;
+
     /**
      * Creates the input filter.
      *
@@ -130,7 +133,7 @@
      *
      * @param host The input filter host environment.
      */
-    final void install(Host host) {
+    public final void install(IInputFilterHost host) {
         mH.obtainMessage(MSG_INSTALL, host).sendToTarget();
     }
 
@@ -138,7 +141,7 @@
      * Called when the input filter is uninstalled.
      * This method is guaranteed to be non-reentrant.
      */
-    final void uninstall() {
+    public final void uninstall() {
         mH.obtainMessage(MSG_UNINSTALL).sendToTarget();
     }
 
@@ -149,7 +152,7 @@
      *
      * @param event The input event to enqueue.
      */
-    final void filterInputEvent(InputEvent event, int policyFlags) {
+    final public void filterInputEvent(InputEvent event, int policyFlags) {
         mH.obtainMessage(MSG_INPUT_EVENT, policyFlags, 0, event).sendToTarget();
     }
 
@@ -170,7 +173,11 @@
         if (mOutboundInputEventConsistencyVerifier != null) {
             mOutboundInputEventConsistencyVerifier.onInputEvent(event, 0);
         }
-        mHost.sendInputEvent(event, policyFlags);
+        try {
+            mHost.sendInputEvent(event, policyFlags);
+        } catch (RemoteException re) {
+            /* ignore */
+        }
     }
 
     /**
@@ -218,7 +225,7 @@
         public void handleMessage(Message msg) {
             switch (msg.what) {
                 case MSG_INSTALL:
-                    mHost = (Host)msg.obj;
+                    mHost = (IInputFilterHost) msg.obj;
                     if (mInboundInputEventConsistencyVerifier != null) {
                         mInboundInputEventConsistencyVerifier.reset();
                     }
@@ -251,8 +258,4 @@
             }
         }
     }
-
-    interface Host {
-        public void sendInputEvent(InputEvent event, int policyFlags);
-    }
 }
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 6819f8b..b1500eb 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -4761,30 +4761,6 @@
     }
 
     /**
-     * Returns the delta between the actual and last reported window left.
-     *
-     * @hide
-     */
-    public int getActualAndReportedWindowLeftDelta() {
-//        if (mAttachInfo != null) {
-//            return mAttachInfo.mActualWindowLeft - mAttachInfo.mWindowLeft; 
-//        }
-        return 0;
-    }
-
-    /**
-     * Returns the delta between the actual and last reported window top.
-     *
-     * @hide
-     */
-    public int getActualAndReportedWindowTopDelta() {
-//        if (mAttachInfo != null) {
-//            return mAttachInfo.mActualWindowTop - mAttachInfo.mWindowTop;
-//        }
-        return 0;
-    }
-
-    /**
      * Computes whether this view is visible to the user. Such a view is
      * attached, visible, all its predecessors are visible, it is not clipped
      * entirely by its predecessors, and has an alpha greater than zero.
@@ -12922,11 +12898,6 @@
             mPrivateFlags &= ~INVALIDATED;
         }
 
-        computeScroll();
-
-        final int sx = mScrollX;
-        final int sy = mScrollY;
-
         DisplayList displayList = null;
         Bitmap cache = null;
         boolean hasDisplayList = false;
@@ -12973,6 +12944,14 @@
             }
         }
 
+        int sx = 0;
+        int sy = 0;
+        if (!hasDisplayList) {
+            computeScroll();
+            sx = mScrollX;
+            sy = mScrollY;
+        }
+
         final boolean hasNoCache = cache == null || hasDisplayList;
         final boolean offsetForScroll = cache == null && !hasDisplayList &&
                 layerType != LAYER_TYPE_HARDWARE;
@@ -17139,20 +17118,6 @@
         int mWindowTop;
 
         /**
-         * Left actual position of this view's window.
-         *
-         * TODO: This is a workaround for 6623031. Remove when fixed.
-         */
-        int mActualWindowLeft;
-
-        /**
-         * Actual top position of this view's window.
-         *
-         * TODO: This is a workaround for 6623031. Remove when fixed.
-         */
-        int mActualWindowTop;
-
-        /**
          * Indicates whether views need to use 32-bit drawing caches
          */
         boolean mUse32BitDrawingCache;
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index 85b6d3d..fb0a8a4 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -1678,6 +1678,30 @@
                     layoutRequested = true;
                 }
             }
+        } else {
+            // Not the first pass and no window/insets/visibility change but the window
+            // may have moved and we need check that and if so to update the left and right
+            // in the attach info. We translate only the window frame since on window move
+            // the window manager tells us only for the new frame but the insets are the
+            // same and we do not want to translate them more than once.
+
+            // TODO: Well, we are checking whether the frame has changed similarly
+            // to how this is done for the insets. This is however incorrect since
+            // the insets and the frame are translated. For example, the old frame
+            // was (1, 1 - 1, 1) and was translated to say (2, 2 - 2, 2), now the new
+            // reported frame is (2, 2 - 2, 2) which implies no change but this is not
+            // true since we are comparing a not translated value to a translated one.
+            // This scenario is rare but we may want to fix that.
+
+            final boolean windowMoved = (attachInfo.mWindowLeft != frame.left
+                    || attachInfo.mWindowTop != frame.top);
+            if (windowMoved) {
+                if (mTranslator != null) {
+                    mTranslator.translateRectInScreenToAppWinFrame(frame);
+                }
+                attachInfo.mWindowLeft = frame.left;
+                attachInfo.mWindowTop = frame.top;
+            }
         }
 
         final boolean didLayout = layoutRequested && !mStopped;
@@ -5214,15 +5238,13 @@
 
         @Override
         public void findAccessibilityNodeInfoByAccessibilityId(long accessibilityNodeId,
-                int windowLeft, int windowTop, int interactionId,
-                IAccessibilityInteractionConnectionCallback callback, int flags,
+                int interactionId, IAccessibilityInteractionConnectionCallback callback, int flags,
                 int interrogatingPid, long interrogatingTid) {
             ViewRootImpl viewRootImpl = mViewRootImpl.get();
             if (viewRootImpl != null && viewRootImpl.mView != null) {
                 viewRootImpl.getAccessibilityInteractionController()
                     .findAccessibilityNodeInfoByAccessibilityIdClientThread(accessibilityNodeId,
-                            windowLeft, windowTop, interactionId, callback, flags, interrogatingPid,
-                            interrogatingTid);
+                            interactionId, callback, flags, interrogatingPid, interrogatingTid);
             } else {
                 // We cannot make the call and notify the caller so it does not wait.
                 try {
@@ -5255,15 +5277,13 @@
 
         @Override
         public void findAccessibilityNodeInfoByViewId(long accessibilityNodeId, int viewId,
-                int windowLeft, int windowTop, int interactionId,
-                IAccessibilityInteractionConnectionCallback callback, int flags,
+                int interactionId, IAccessibilityInteractionConnectionCallback callback, int flags,
                 int interrogatingPid, long interrogatingTid) {
             ViewRootImpl viewRootImpl = mViewRootImpl.get();
             if (viewRootImpl != null && viewRootImpl.mView != null) {
                 viewRootImpl.getAccessibilityInteractionController()
                     .findAccessibilityNodeInfoByViewIdClientThread(accessibilityNodeId, viewId,
-                            windowLeft, windowTop, interactionId, callback, flags, interrogatingPid,
-                            interrogatingTid);
+                            interactionId, callback, flags, interrogatingPid, interrogatingTid);
             } else {
                 // We cannot make the call and notify the caller so it does not wait.
                 try {
@@ -5276,15 +5296,13 @@
 
         @Override
         public void findAccessibilityNodeInfosByText(long accessibilityNodeId, String text,
-                int windowLeft, int windowTop, int interactionId,
-                IAccessibilityInteractionConnectionCallback callback, int flags,
+                int interactionId, IAccessibilityInteractionConnectionCallback callback, int flags,
                 int interrogatingPid, long interrogatingTid) {
             ViewRootImpl viewRootImpl = mViewRootImpl.get();
             if (viewRootImpl != null && viewRootImpl.mView != null) {
                 viewRootImpl.getAccessibilityInteractionController()
                     .findAccessibilityNodeInfosByTextClientThread(accessibilityNodeId, text,
-                            windowLeft, windowTop, interactionId, callback, flags, interrogatingPid,
-                            interrogatingTid);
+                            interactionId, callback, flags, interrogatingPid, interrogatingTid);
             } else {
                 // We cannot make the call and notify the caller so it does not wait.
                 try {
@@ -5296,15 +5314,14 @@
         }
 
         @Override
-        public void findFocus(long accessibilityNodeId, int focusType, int windowLeft,
-                int windowTop, int interactionId,
+        public void findFocus(long accessibilityNodeId, int focusType, int interactionId,
                 IAccessibilityInteractionConnectionCallback callback, int flags,
                 int interrogatingPid, long interrogatingTid) {
             ViewRootImpl viewRootImpl = mViewRootImpl.get();
             if (viewRootImpl != null && viewRootImpl.mView != null) {
                 viewRootImpl.getAccessibilityInteractionController()
-                    .findFocusClientThread(accessibilityNodeId, focusType, windowLeft, windowTop,
-                            interactionId, callback, flags, interrogatingPid, interrogatingTid);
+                    .findFocusClientThread(accessibilityNodeId, focusType, interactionId, callback,
+                            flags, interrogatingPid, interrogatingTid);
             } else {
                 // We cannot make the call and notify the caller so it does not wait.
                 try {
@@ -5316,15 +5333,14 @@
         }
 
         @Override
-        public void focusSearch(long accessibilityNodeId, int direction, int windowLeft,
-                int windowTop, int interactionId,
+        public void focusSearch(long accessibilityNodeId, int direction, int interactionId,
                 IAccessibilityInteractionConnectionCallback callback, int flags,
                 int interrogatingPid, long interrogatingTid) {
             ViewRootImpl viewRootImpl = mViewRootImpl.get();
             if (viewRootImpl != null && viewRootImpl.mView != null) {
                 viewRootImpl.getAccessibilityInteractionController()
-                    .focusSearchClientThread(accessibilityNodeId, direction, windowLeft, windowTop,
-                            interactionId, callback, flags, interrogatingPid, interrogatingTid);
+                    .focusSearchClientThread(accessibilityNodeId, direction, interactionId,
+                            callback, flags, interrogatingPid, interrogatingTid);
             } else {
                 // We cannot make the call and notify the caller so it does not wait.
                 try {
diff --git a/core/java/android/view/accessibility/AccessibilityNodeInfo.java b/core/java/android/view/accessibility/AccessibilityNodeInfo.java
index 68983e2..768744b 100644
--- a/core/java/android/view/accessibility/AccessibilityNodeInfo.java
+++ b/core/java/android/view/accessibility/AccessibilityNodeInfo.java
@@ -382,10 +382,6 @@
 
     private int mConnectionId = UNDEFINED;
 
-    // TODO: These are a workaround for 6623031. Remove when fixed.
-    private int mActualAndReportedWindowLeftDelta;
-    private int mActualAndReportedWindowTopDelta;
-
     /**
      * Hide constructor from clients.
      */
@@ -432,10 +428,6 @@
         final int rootAccessibilityViewId =
             (root != null) ? root.getAccessibilityViewId() : UNDEFINED;
         mSourceNodeId = makeNodeId(rootAccessibilityViewId, virtualDescendantId);
-        if (root != null) {
-            mActualAndReportedWindowLeftDelta = root.getActualAndReportedWindowLeftDelta();
-            mActualAndReportedWindowTopDelta = root.getActualAndReportedWindowTopDelta();
-        }
     }
 
     /**
@@ -833,7 +825,6 @@
     public void setBoundsInScreen(Rect bounds) {
         enforceNotSealed();
         mBoundsInScreen.set(bounds.left, bounds.top, bounds.right, bounds.bottom);
-        mBoundsInScreen.offset(mActualAndReportedWindowLeftDelta, mActualAndReportedWindowTopDelta);
     }
 
     /**
diff --git a/core/java/android/view/accessibility/IAccessibilityInteractionConnection.aidl b/core/java/android/view/accessibility/IAccessibilityInteractionConnection.aidl
index 292702a..9b39300 100644
--- a/core/java/android/view/accessibility/IAccessibilityInteractionConnection.aidl
+++ b/core/java/android/view/accessibility/IAccessibilityInteractionConnection.aidl
@@ -28,25 +28,25 @@
  */
 oneway interface IAccessibilityInteractionConnection {
 
-    void findAccessibilityNodeInfoByAccessibilityId(long accessibilityNodeId, int windowLeft,
-        int windowTop, int interactionId, IAccessibilityInteractionConnectionCallback callback,
-        int flags, int interrogatingPid, long interrogatingTid);
+    void findAccessibilityNodeInfoByAccessibilityId(long accessibilityNodeId, int interactionId,
+        IAccessibilityInteractionConnectionCallback callback, int flags, int interrogatingPid,
+        long interrogatingTid);
 
-    void findAccessibilityNodeInfoByViewId(long accessibilityNodeId, int viewId, int windowLeft,
-        int windowTop, int interactionId, IAccessibilityInteractionConnectionCallback callback,
-        int flags, int interrogatingPid, long interrogatingTid);
+    void findAccessibilityNodeInfoByViewId(long accessibilityNodeId, int viewId, int interactionId,
+        IAccessibilityInteractionConnectionCallback callback, int flags, int interrogatingPid,
+        long interrogatingTid);
 
-    void findAccessibilityNodeInfosByText(long accessibilityNodeId, String text, int windowLeft,
-        int windowTop, int interactionId, IAccessibilityInteractionConnectionCallback callback,
-        int flags, int interrogatingPid, long interrogatingTid);
+    void findAccessibilityNodeInfosByText(long accessibilityNodeId, String text, int interactionId,
+        IAccessibilityInteractionConnectionCallback callback, int flags, int interrogatingPid,
+        long interrogatingTid);
 
-    void findFocus(long accessibilityNodeId, int focusType, int windowLeft, int windowTop,
-        int interactionId, IAccessibilityInteractionConnectionCallback callback, int flags,
-        int interrogatingPid, long interrogatingTid);
+    void findFocus(long accessibilityNodeId, int focusType, int interactionId,
+        IAccessibilityInteractionConnectionCallback callback, int flags, int interrogatingPid,
+        long interrogatingTid);
 
-    void focusSearch(long accessibilityNodeId, int direction, int windowLeft, int windowTop,
-        int interactionId, IAccessibilityInteractionConnectionCallback callback, int flags,
-        int interrogatingPid, long interrogatingTid);
+    void focusSearch(long accessibilityNodeId, int direction, int interactionId,
+        IAccessibilityInteractionConnectionCallback callback, int flags, int interrogatingPid,
+        long interrogatingTid);
 
     void performAccessibilityAction(long accessibilityNodeId, int action, in Bundle arguments,
         int interactionId, IAccessibilityInteractionConnectionCallback callback, int flags,
diff --git a/core/java/com/android/internal/content/PackageMonitor.java b/core/java/com/android/internal/content/PackageMonitor.java
index f41fcc6..650681a 100644
--- a/core/java/com/android/internal/content/PackageMonitor.java
+++ b/core/java/com/android/internal/content/PackageMonitor.java
@@ -111,16 +111,22 @@
     
     public void onBeginPackageChanges() {
     }
-    
+
+    /**
+     * Called when a package is really added (and not replaced).
+     */
     public void onPackageAdded(String packageName, int uid) {
     }
-    
+
+    /**
+     * Called when a package is really removed (and not replaced).
+     */
     public void onPackageRemoved(String packageName, int uid) {
     }
-    
+
     public void onPackageUpdateStarted(String packageName, int uid) {
     }
-    
+
     public void onPackageUpdateFinished(String packageName, int uid) {
     }
     
@@ -144,10 +150,16 @@
     public static final int PACKAGE_UPDATING = 1;
     public static final int PACKAGE_TEMPORARY_CHANGE = 2;
     public static final int PACKAGE_PERMANENT_CHANGE = 3;
-    
+
+    /**
+     * Called when a package disappears for any reason.
+     */
     public void onPackageDisappeared(String packageName, int reason) {
     }
-    
+
+    /**
+     * Called when a package appears for any reason.
+     */
     public void onPackageAppeared(String packageName, int reason) {
     }
     
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 6546fed..cdc5ad4 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -1223,6 +1223,19 @@
         android:description="@string/permdesc_injectEvents"
         android:protectionLevel="signature" />
 
+    <!-- @hide Allows an application to register an input filter which filters the stream
+         of user events (keys, touch, trackball) before they are dispatched to any window. -->
+    <permission android:name="android.permission.FILTER_EVENTS"
+        android:label="@string/permlab_filter_events"
+        android:description="@string/permdesc_filter_events"
+        android:protectionLevel="signature" />
+
+    <!-- @hide Allows an application to retrieve info for a window from the window manager. -->
+    <permission android:name="android.permission.RETRIEVE_WINDOW_INFO"
+        android:label="@string/permlab_retrieve_window_info"
+        android:description="@string/permdesc_retrieve_window_info"
+        android:protectionLevel="signature" />
+
     <!-- Allows an application to watch and control how activities are
          started globally in the system.  Only for is in debugging
          (usually the monkey command). -->
diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml
index 15733be..85028b7 100644
--- a/core/res/res/values-af/strings.xml
+++ b/core/res/res/values-af/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Laat die program toe om die interne status van die stelsel op te haal. Kwaadwillige programme kan \'n verskeidenheid privaat en beveiligde inligting ophaal wat hulle gewoonlik nooit nodig het nie."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"haal skerminhoud op"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Laat die program toe om die inhoud van die aktiewe venster op te haal. Kwaadwillige programme kan die hele venster se inhoud ophaal, en al die teks ondersoek, behalwe wagwoorde."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"gedeeltelike afskakeling"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Plaas die aktiwiteitbestuurder in \'n afsluitingstatus. Doen nie \'n volledige afsluiting nie."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"verhoed program-oorskakelings"</string>
diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml
index 2212354..d2f1b8d 100644
--- a/core/res/res/values-am/strings.xml
+++ b/core/res/res/values-am/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"የስርዓቱን ውስጣዊ ሁናቴ ለመበርበር ለመተግበሪያው ይፈቅዳሉ፡፡ በተለምዶ የማያስፈልጋቸውን ብዙ አይነት የግል እና የደህንነት መረጃዎችን ተንኮል አዘል  መተግበሪያዎች ሊበረብሩ ይችላሉ፡፡"</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"የማያ ይዘት ሰርስረህ አውጣ"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"የነቃ መስኮት ይዘትን ለመበርበር ለመተግበሪያው ይፈቅዳሉ፡፡ ጠቅላላውን የመስኮት ይዘት ለመበርበር እና ከይለፍ ቃል በስተቀር ሁሉንም ጽሑፉን ለማየት ጎጂ መተግበሪያዎች ይችላሉ፡፡"</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"ከፊል ዝጋ"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"የእንቅስቃሴውን አደራጅ ወደ ዝጋ ሁነታ አስቀምጥ።ሙሉ ለሙሉ ዝጋ አያከናውንም።"</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"የትግበራ መቀያየርን ተከላከል"</string>
diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml
index 02eb84b..589619c 100644
--- a/core/res/res/values-ar/strings.xml
+++ b/core/res/res/values-ar/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"للسماح للتطبيق باسترداد الحالة الداخلية للنظام. قد تسترد التطبيقات الضارة مجموعة كبيرة من المعلومات الخاصة والآمنة التي لا حاجة لها في العادة على الإطلاق."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"استرداد محتوى الشاشة"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"للسماح للتطبيق باسترداد محتوى النافذة النشطة. يمكن للبرامج الضارة استرداد محتوى النافذة بالكامل وفحص جميع النصوص الموجودة بها باستثناء كلمات المرور."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"إيقاف تشغيل جزئي"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"لوضع مدير الأنشطة في حالة إيقاف التشغيل. لا يتم تنفيذ إيقاف تشغيل كامل."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"منع التبديل بين التطبيقات"</string>
diff --git a/core/res/res/values-be/strings.xml b/core/res/res/values-be/strings.xml
index 3b547a0..c297be7 100644
--- a/core/res/res/values-be/strings.xml
+++ b/core/res/res/values-be/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Дазваляе прыкладанням атрымліваць інфармацыю аб унутраным стане сістэмы. Шкоднасныя прыкладанні могуць атрымліваць шырокі спектр прыватных дадзеных і дадзеных, прызначаных для забеспячэння бяспекі інфармацыі, якія звычайна ім не патрэбны."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"атрыманне зместу экрана"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Дазваляе прыкладанням атрымліваць змесціва актыўнага акна. Шкоднасныя прыкладанні могуць атрымліваць усё змесціва акна і разглядаць увесь яго тэкст, акрамя пароляў."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"частковае адключэнне"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Спыняе дзейнасць менеджэра. Не выконвае поўнае адключэнне."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"прадухіляць пераключэнне прыкладанняў"</string>
diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml
index 1a44113..2f88788 100644
--- a/core/res/res/values-bg/strings.xml
+++ b/core/res/res/values-bg/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Разрешава на приложението да извлича вътрешното състояние на системата. Злонамерените приложения могат да извлекат разнообразна частна и защитена информация, която нормално не би трябвало да им е нужна."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"извличане на съдържанието на екрана"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Разрешава на приложението да извлича съдържанието от активния прозорец. Злонамерените приложения могат да извлекат цялото му съдържание и да проследят целия текст в него освен паролите."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"частично изключване"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Изключва диспечера на дейностите. Не извършва пълно изключване."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"предотвратяване на превключването между приложения"</string>
diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml
index a5dc6d1..4c8787f 100644
--- a/core/res/res/values-ca/strings.xml
+++ b/core/res/res/values-ca/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Permet que l\'aplicació recuperi l\'estat intern del sistema. Les aplicacions malicioses poden recuperar una àmplia gamma d\'informació privada i de seguretat que normalment no haurien de necessitar mai."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"recuperació del contingut de la pantalla"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Permet que l\'aplicació recuperi el contingut de la finestra activa. Les aplicacions malicioses poden recuperar el contingut de tota la finestra i examinar-ne tot el text, excepte les contrasenyes."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"apagar parcialment"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Posa el gestor d\'activitats en estat d\'apagada. No fa una apagada completa."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"impedir els canvis d\'aplicació"</string>
diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml
index 7b044b5..b37bdf3 100644
--- a/core/res/res/values-cs/strings.xml
+++ b/core/res/res/values-cs/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Umožňuje aplikaci získat informace o vnitřním stavu systému. Škodlivé aplikace mohou získat různé soukromé informace nebo informace o zabezpečení, které by běžně vůbec neměly potřebovat."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"načtení obsahu obrazovky"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Umožňuje aplikaci načíst obsah aktivního okna. Škodlivé aplikace mohou načíst obsah celého okna a prozkoumat všechen text kromě hesel."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"částečné vypnutí"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Uvede správce činností do vypnutého stavu. Nedojde však k úplnému vypnutí."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"zabránění přepínání aplikací"</string>
diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml
index e9b1c2c..64a78947 100644
--- a/core/res/res/values-da/strings.xml
+++ b/core/res/res/values-da/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Tillader, at appen kan hente systemets interne tilstand. Ondsindede apps kan hente en lang række fortrolige og beskyttede oplysninger, som de normalt aldrig ville have brug for."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"hente skærmindhold"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Tillader, at appen kan hente indholdet i det aktive vindue. Ondsindede apps kan hente al indholdet i vinduet og undersøge al dens tekst med undtagelse af adgangskoder."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"delvis lukning"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Sætter aktivitetsadministratoren i lukningstilstand. Lukker ikke helt ned."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"undgå programskift"</string>
diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml
index d871ab1..1ec6144 100644
--- a/core/res/res/values-de/strings.xml
+++ b/core/res/res/values-de/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Ermöglicht der App, den internen Systemstatus abzurufen. Schädliche Apps können so eine Vielzahl an privaten und geschützten Daten abrufen, die sie in der Regel nicht benötigen."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"Bildschirminhalt abrufen"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Ermöglicht der App, den Inhalt des aktiven Fensters abzurufen. Schädliche Apps können so den gesamten Fensterinhalt abrufen und mit Ausnahme von Passwörtern den gesamten Text auswerten."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"partielles Herunterfahren"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Versetzt den Aktivitätsmanager in einen heruntergefahrenen Zustand. Führt kein vollständiges Herunterfahren aus."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"App-Wechsel verhindern"</string>
diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml
index 3016481..ba4d96e 100644
--- a/core/res/res/values-el/strings.xml
+++ b/core/res/res/values-el/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Επιτρέπει στην  εφαρμογή την ανάκτηση της εσωτερικής κατάστασης του συστήματος. Τυχόν κακόβουλες εφαρμογές ενδέχεται να ανακτήσουν μεγάλη ποικιλία ιδιωτικών πληροφοριών και πληροφοριών ασφάλειας οι οποίες δεν θα έπρεπε να τους είναι απαραίτητες υπό φυσιολογικές συνθήκες."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"ανάκτηση περιεχομένου οθόνης"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Επιτρέπει στην εφαρμογή την ανάκτηση του περιεχομένου του ενεργού παραθύρου. Τυχόν κακόβουλες εφαρμογές ενδέχεται να ανακτήσουν ολόκληρο το περιεχόμενο του παραθύρου και να εξετάσουν ολόκληρο το κείμενό του εκτός από τους κωδικούς πρόσβασης."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"μερικός τερματισμός λειτουργίας"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Θέτει το πρόγραμμα διαχείρισης δραστηριοτήτων σε κατάσταση τερματισμού λειτουργιών. Δεν εκτελεί πλήρη τερματισμό λειτουργιών."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"αποτροπή εναλλαγών εφαρμογών"</string>
diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml
index cda0daa..faeb3fa 100644
--- a/core/res/res/values-en-rGB/strings.xml
+++ b/core/res/res/values-en-rGB/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Allows the app to retrieve the internal state of the system. Malicious apps may retrieve a wide variety of private and secure information that they should never normally need."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"retrieve screen content"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Allows the app to retrieve the content of the active window. Malicious apps may retrieve the entire window content and examine all its text except passwords."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"partial shutdown"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Puts the activity manager into a shut-down state. Does not perform a complete shut down."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"prevent app switches"</string>
diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml
index 5b8a03b..915c8ad 100644
--- a/core/res/res/values-es-rUS/strings.xml
+++ b/core/res/res/values-es-rUS/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Permite que la aplicación recupere el estado interno del sistema. Las aplicaciones maliciosas pueden recuperar una amplia variedad de información privada y segura que normalmente no necesitarían."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"recuperar contenido de la pantalla"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Permite que la aplicación recupere el contenido de la ventana activa. Las aplicaciones maliciosas pueden recuperar el contenido completo de la ventana y examinar todo el texto, excepto las contraseñas."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"cierre parcial"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Pone al administrador de la actividad en estado de cierre. No realiza un cierre completo."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"impedir conmutadores de aplicación"</string>
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index c335fa3..14d4095 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Permite que la aplicación recupere el estado interno del sistema. Las aplicaciones malintencionadas pueden usar este permiso para recuperar una gran variedad de información protegida y privada que normalmente no deberían necesitar."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"recuperar contenido de la pantalla"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Permite que la aplicación recupere el contenido de la ventana activa. Las aplicaciones malintencionadas pueden recuperar todo el contenido de la ventana y analizar todo el texto de la misma, excepto las contraseñas."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"cierre parcial"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Pone el administrador de actividades en estado de cierre. No realiza un cierre completo."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"evitar cambios de aplicación"</string>
diff --git a/core/res/res/values-et/strings.xml b/core/res/res/values-et/strings.xml
index d49594b..0df817d 100644
--- a/core/res/res/values-et/strings.xml
+++ b/core/res/res/values-et/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Võimaldab rakendusel teada saada süsteemi sisemist olekut. Pahatahtlikud rakendused võivad hankida mitmesugust privaatset ja turvateavet, mida neil tavaliselt kunagi vaja ei lähe."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"ekraanisisu taastamine"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Võimaldab rakendusel kätte saada aktiivse akna sisu. Pahatahtlikud rakendused võivad hankida kogu akna sisu ja uurida kogu selle teksti, välja arvatud paroole."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"osaline väljalülitamine"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Lülitab tegevushalduri väljalülitusolekusse. Ei lülita lõplikult välja."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"väldi rakenduste ümberlülitamist"</string>
diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml
index dd29c92..1a272a1 100644
--- a/core/res/res/values-fa/strings.xml
+++ b/core/res/res/values-fa/strings.xml
@@ -35,7 +35,7 @@
     <string name="defaultVoiceMailAlphaTag" msgid="2660020990097733077">"پست صوتی"</string>
     <string name="defaultMsisdnAlphaTag" msgid="2850889754919584674">"MSISDN1"</string>
     <string name="mmiError" msgid="5154499457739052907">"مشکل در اتصال یا کد MMI نامعتبر."</string>
-    <string name="mmiFdnError" msgid="5224398216385316471">"عملکرد فقط به شماره های شماره گیری ثابت محدود است."</string>
+    <string name="mmiFdnError" msgid="5224398216385316471">"عملکرد فقط به شماره‌های شماره گیری ثابت محدود است."</string>
     <string name="serviceEnabled" msgid="8147278346414714315">"سرویس فعال شد."</string>
     <string name="serviceEnabledFor" msgid="6856228140453471041">"سرویس فعال شد برای:"</string>
     <string name="serviceDisabled" msgid="1937553226592516411">"سرویس غیرفعال شده است."</string>
@@ -62,13 +62,13 @@
     <string name="CnipMmi" msgid="3110534680557857162">"شماره تماس حاضر"</string>
     <string name="CnirMmi" msgid="3062102121430548731">"شماره تماس محدود شده"</string>
     <string name="ThreeWCMmi" msgid="9051047170321190368">"سه روش برقراری تماس"</string>
-    <string name="RuacMmi" msgid="7827887459138308886">"رد تماس های ناخواسته و آزار دهنده"</string>
+    <string name="RuacMmi" msgid="7827887459138308886">"رد تماس‌های ناخواسته و آزار دهنده"</string>
     <string name="CndMmi" msgid="3116446237081575808">"تحویل شماره تماس"</string>
     <string name="DndMmi" msgid="1265478932418334331">"مزاحم نشوید"</string>
-    <string name="CLIRDefaultOnNextCallOn" msgid="429415409145781923">"پیش فرض شناسه تماس گیرنده روی محدود است. تماس بعدی: محدود"</string>
-    <string name="CLIRDefaultOnNextCallOff" msgid="3092918006077864624">"پیش فرض شناسه تماس گیرنده روی محدود است. تماس بعدی: بدون محدودیت"</string>
-    <string name="CLIRDefaultOffNextCallOn" msgid="6179425182856418465">"پیش فرض شناسه تماس گیرنده روی غیر محدود است. تماس بعدی: محدود"</string>
-    <string name="CLIRDefaultOffNextCallOff" msgid="2567998633124408552">"پیش فرض شناسه تماس گیرنده روی غیر محدود است. تماس بعدی: بدون محدودیت"</string>
+    <string name="CLIRDefaultOnNextCallOn" msgid="429415409145781923">"پیش‌فرض شناسه تماس گیرنده روی محدود است. تماس بعدی: محدود"</string>
+    <string name="CLIRDefaultOnNextCallOff" msgid="3092918006077864624">"پیش‌فرض شناسه تماس گیرنده روی محدود است. تماس بعدی: بدون محدودیت"</string>
+    <string name="CLIRDefaultOffNextCallOn" msgid="6179425182856418465">"پیش‌فرض شناسه تماس گیرنده روی غیر محدود است. تماس بعدی: محدود"</string>
+    <string name="CLIRDefaultOffNextCallOff" msgid="2567998633124408552">"پیش‌فرض شناسه تماس گیرنده روی غیر محدود است. تماس بعدی: بدون محدودیت"</string>
     <string name="serviceNotProvisioned" msgid="8614830180508686666">"سرویس دارای مجوز نیست."</string>
     <string name="CLIRPermanent" msgid="3377371145926835671">"شما می‎توانید تنظیم شناسه تماس گیرنده را تغییر دهید."</string>
     <string name="RestrictedChangedTitle" msgid="5592189398956187498">"دسترسی محدود تغییر یافت"</string>
@@ -124,16 +124,16 @@
     <string name="httpErrorBadUrl" msgid="3636929722728881972">"بدلیل نامعتبر بودن URL، باز کردن صفحه ممکن نیست."</string>
     <string name="httpErrorFile" msgid="2170788515052558676">"دسترسی به فایل انجام نشد."</string>
     <string name="httpErrorFileNotFound" msgid="6203856612042655084">"فایل درخواستی پیدا نشد."</string>
-    <string name="httpErrorTooManyRequests" msgid="1235396927087188253">"درخواست های زیادی در حال پردازش است. بعداً دوباره امتحان کنید."</string>
+    <string name="httpErrorTooManyRequests" msgid="1235396927087188253">"درخواست‌های زیادی در حال پردازش است. بعداً دوباره امتحان کنید."</string>
     <string name="notification_title" msgid="8967710025036163822">"خطای ورود به سیستم برای <xliff:g id="ACCOUNT">%1$s</xliff:g>"</string>
     <string name="contentServiceSync" msgid="8353523060269335667">"همگام سازی"</string>
     <string name="contentServiceSyncNotificationTitle" msgid="397743349191901458">"همگام سازی"</string>
     <string name="contentServiceTooManyDeletesNotificationDesc" msgid="8100981435080696431">"تعداد موارد حذف شده <xliff:g id="CONTENT_TYPE">%s</xliff:g> بسیار زیاد است."</string>
     <string name="low_memory" product="tablet" msgid="6494019234102154896">"حافظه رایانه لوحی پر است! برخی از فایل‎ها را حذف کنید تا فضا آزاد شود."</string>
-    <string name="low_memory" product="default" msgid="3475999286680000541">"حافظه تلفن پر است. بعضی از فایلها را حذف کنید تا فضا آزاد شود."</string>
+    <string name="low_memory" product="default" msgid="3475999286680000541">"حافظه تلفن پر است. بعضی از فایل‌ها را حذف کنید تا فضا آزاد شود."</string>
     <string name="me" msgid="6545696007631404292">"من"</string>
-    <string name="power_dialog" product="tablet" msgid="8545351420865202853">"گزینه های رایانه لوحی"</string>
-    <string name="power_dialog" product="default" msgid="1319919075463988638">"گزینه های تلفن"</string>
+    <string name="power_dialog" product="tablet" msgid="8545351420865202853">"گزینه‌های رایانه لوحی"</string>
+    <string name="power_dialog" product="default" msgid="1319919075463988638">"گزینه‌های تلفن"</string>
     <string name="silent_mode" msgid="7167703389802618663">"حالت ساکت"</string>
     <string name="turn_on_radio" msgid="3912793092339962371">"روشن کردن بی سیم"</string>
     <string name="turn_off_radio" msgid="8198784949987062346">"خاموش کردن بی سیم"</string>
@@ -143,15 +143,15 @@
     <string name="silent_mode_vibrate" msgid="7072043388581551395">"زنگ لرزشی"</string>
     <string name="silent_mode_ring" msgid="8592241816194074353">"زنگ روشن"</string>
     <string name="shutdown_progress" msgid="2281079257329981203">"خاموش کردن..."</string>
-    <string name="shutdown_confirm" product="tablet" msgid="3385745179555731470">"رایانه لوحی شما خاموش می شود."</string>
-    <string name="shutdown_confirm" product="default" msgid="649792175242821353">"گوشی شما خاموش می شود."</string>
+    <string name="shutdown_confirm" product="tablet" msgid="3385745179555731470">"رایانه لوحی شما خاموش می‌شود."</string>
+    <string name="shutdown_confirm" product="default" msgid="649792175242821353">"گوشی شما خاموش می‌شود."</string>
     <string name="shutdown_confirm_question" msgid="2906544768881136183">"آیا می‎خواهید تلفن خاموش شود؟"</string>
     <string name="reboot_safemode_title" msgid="7054509914500140361">"راه‌اندازی مجدد در حالت امن"</string>
     <string name="reboot_safemode_confirm" msgid="55293944502784668">"آیا می‌خواهید با حالت امن راه‌اندازی مجدد کنید؟ با این کار کلیه برنامه‌های شخص ثالثی که نصب کرده‌اید غیرفعال می‌شوند. با راه‌اندازی دوباره سیستم این برنامه‌ها دوباره بازیابی می‌شوند."</string>
     <string name="recent_tasks_title" msgid="3691764623638127888">"اخیر"</string>
     <string name="no_recent_tasks" msgid="8794906658732193473">"برنامه‎های جدید موجود نیست."</string>
-    <string name="global_actions" product="tablet" msgid="408477140088053665">"گزینه های رایانه لوحی"</string>
-    <string name="global_actions" product="default" msgid="2406416831541615258">"گزینه های تلفن"</string>
+    <string name="global_actions" product="tablet" msgid="408477140088053665">"گزینه‌های رایانه لوحی"</string>
+    <string name="global_actions" product="default" msgid="2406416831541615258">"گزینه‌های تلفن"</string>
     <string name="global_action_lock" msgid="2844945191792119712">"قفل صفحه"</string>
     <string name="global_action_power_off" msgid="4471879440839879722">"خاموش کردن"</string>
     <string name="global_action_toggle_silent_mode" msgid="8219525344246810925">"حالت ساکت"</string>
@@ -165,27 +165,27 @@
     <string name="android_system_label" msgid="6577375335728551336">"سیستم Android"</string>
     <string name="permgrouplab_costMoney" msgid="5429808217861460401">"سرویس‌های غیر رایگان"</string>
     <string name="permgroupdesc_costMoney" msgid="3293301903409869495">"انجام کارهایی که برای شما هزینه دارد."</string>
-    <string name="permgrouplab_messages" msgid="7521249148445456662">"پیام های شما"</string>
-    <string name="permgroupdesc_messages" msgid="7821999071003699236">"پیام کوتاه، ایمیل و دیگر پیامها را بخوانید."</string>
+    <string name="permgrouplab_messages" msgid="7521249148445456662">"پیام‌های شما"</string>
+    <string name="permgroupdesc_messages" msgid="7821999071003699236">"پیام کوتاه، ایمیل و دیگر پیام‌ها را بخوانید."</string>
     <string name="permgrouplab_personalInfo" msgid="3519163141070533474">"اطلاعات شخصی شما"</string>
     <string name="permgroupdesc_personalInfo" product="tablet" msgid="6975389054186265786">"دسترسی مستقیم به مخاطبین و تقویم ذخیره شده در رایانه لوحی."</string>
     <string name="permgroupdesc_personalInfo" product="default" msgid="5488050357388806068">"دسترسی مستقیم به مخاطبین و تقویم ذخیره شده در گوشی."</string>
     <string name="permgrouplab_location" msgid="635149742436692049">"موقعیت مکانی شما"</string>
     <string name="permgroupdesc_location" msgid="5704679763124170100">"بر موقعیت مکانی فیزیکی خود نظارت داشته باشید."</string>
-    <string name="permgrouplab_network" msgid="5808983377727109831">"ارتباط شبکه"</string>
+    <string name="permgrouplab_network" msgid="5808983377727109831">"ارتباط شبکه‌ای"</string>
     <string name="permgroupdesc_network" msgid="4478299413241861987">"به ویژگی‎های مختلف شبکه دسترسی داشته باشید."</string>
-    <string name="permgrouplab_accounts" msgid="3359646291125325519">"حساب های شما"</string>
-    <string name="permgroupdesc_accounts" msgid="4948732641827091312">"به حساب های موجود دسترسی داشته باشید."</string>
-    <string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"کنترل های سخت افزار"</string>
+    <string name="permgrouplab_accounts" msgid="3359646291125325519">"حساب‌های شما"</string>
+    <string name="permgroupdesc_accounts" msgid="4948732641827091312">"به حساب‌های موجود دسترسی داشته باشید."</string>
+    <string name="permgrouplab_hardwareControls" msgid="7998214968791599326">"کنترل‌های سخت افزار"</string>
     <string name="permgroupdesc_hardwareControls" msgid="4357057861225462702">"دسترسی مستقیم به سخت افزار در گوشی."</string>
-    <string name="permgrouplab_phoneCalls" msgid="9067173988325865923">"تماس های تلفنی"</string>
-    <string name="permgroupdesc_phoneCalls" msgid="7489701620446183770">"نظارت، ضبط و پردازش تماس های تلفنی."</string>
+    <string name="permgrouplab_phoneCalls" msgid="9067173988325865923">"تماس‌های تلفنی"</string>
+    <string name="permgroupdesc_phoneCalls" msgid="7489701620446183770">"نظارت، ضبط و پردازش تماس‌های تلفنی."</string>
     <string name="permgrouplab_systemTools" msgid="4652191644082714048">"ابزارهای سیستم"</string>
     <string name="permgroupdesc_systemTools" msgid="8162102602190734305">"دسترسی سطح پایین و کنترل سیستم."</string>
     <string name="permgrouplab_developmentTools" msgid="3446164584710596513">"ابزارهای توسعه"</string>
     <string name="permgroupdesc_developmentTools" msgid="7058828032358142018">"ویژگیهایی که فقط مورد نیاز برنامه نویسان است."</string>
-    <string name="permgrouplab_storage" msgid="1971118770546336966">"ذخیره سازی"</string>
-    <string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"به حافظه USB دسترسی پیدا کنید."</string>
+    <string name="permgrouplab_storage" msgid="1971118770546336966">"حافظه"</string>
+    <string name="permgroupdesc_storage" product="nosdcard" msgid="7442318502446874999">"به حافظهٔ USB دسترسی پیدا کنید."</string>
     <string name="permgroupdesc_storage" product="default" msgid="9203302214915355774">"به کارت SD دسترسی داشته باشید."</string>
     <string name="permlab_statusBar" msgid="7417192629601890791">"غیرفعال کردن یا تغییر نوار وضعیت"</string>
     <string name="permdesc_statusBar" msgid="8434669549504290975">"به برنامه اجازه می‎دهد تا نوار وضعیت را غیرفعال کند یا نمادهای سیستم را اضافه یا حذف کند."</string>
@@ -196,25 +196,25 @@
     <string name="permlab_processOutgoingCalls" msgid="3906007831192990946">"ترسیم مجدد مسیر تماس‌های خروجی"</string>
     <string name="permdesc_processOutgoingCalls" msgid="5331318931937402040">"به برنامه اجازه می‎دهد تماس‌های خروجی را پردازش کند و شماره‎هایی که باید گرفته شوند را تغییر دهد. این مجوز به برنامه امکان می‌دهد به کنترل، هدایت مجدد یا جلوگیری از تماس‌های خروجی بپردازد."</string>
     <string name="permlab_receiveSms" msgid="8673471768947895082">"دریافت پیام‌های نوشتاری (پیامک)"</string>
-    <string name="permdesc_receiveSms" msgid="6424387754228766939">"به برنامه اجازه می‌دهد پیامک‌ها را دریافت و پردازش کند. این یعنی برنامه می‌تواند پیام‌های ارسالی به دستگاه شما را بدون نمایش آنها به شما حذف یا کنترل کند."</string>
+    <string name="permdesc_receiveSms" msgid="6424387754228766939">"به برنامه اجازه می‌دهد پیامک‌ها را دریافت و پردازش کند. این یعنی برنامه می‌تواند پیام‌های ارسالی به دستگاه شما را بدون نمایش آن‌ها به شما حذف یا کنترل کند."</string>
     <string name="permlab_receiveMms" msgid="1821317344668257098">"دریافت پیام‌های نوشتاری (MMS)"</string>
-    <string name="permdesc_receiveMms" msgid="533019437263212260">"به برنامه اجازه می‌دهد پیام‌های MMS را دریافت و پردازش کند. این یعنی برنامه می‌تواند پیام‌های ارسالی به دستگاه شما را بدون نمایش آنها به شما حذف یا کنترل کند."</string>
-    <string name="permlab_receiveEmergencyBroadcast" msgid="1803477660846288089">"دریافت پخش های اضطراری"</string>
-    <string name="permdesc_receiveEmergencyBroadcast" msgid="848524070262431974">"به برنامه اجازه می‎دهد تا پیامهای پخش اضطراری را دریافت و پردازش کند. این مجوز فقط برای برنامه‎های سیستم در دسترس است."</string>
+    <string name="permdesc_receiveMms" msgid="533019437263212260">"به برنامه اجازه می‌دهد پیام‌های MMS را دریافت و پردازش کند. این یعنی برنامه می‌تواند پیام‌های ارسالی به دستگاه شما را بدون نمایش آن‌ها به شما حذف یا کنترل کند."</string>
+    <string name="permlab_receiveEmergencyBroadcast" msgid="1803477660846288089">"دریافت پخش‌های اضطراری"</string>
+    <string name="permdesc_receiveEmergencyBroadcast" msgid="848524070262431974">"به برنامه اجازه می‎دهد تا پیام‌های پخش اضطراری را دریافت و پردازش کند. این مجوز فقط برای برنامه‎های سیستم در دسترس است."</string>
     <string name="permlab_readCellBroadcasts" msgid="1598328843619646166">"خواندن پیام‌های پخش سلولی"</string>
-    <string name="permdesc_readCellBroadcasts" msgid="6361972776080458979">"به برنامه اجازه می‎دهد پیامهای پخش سلولی دستگاه شما را بخواند. هشدارهای پخش سلولی در برخی از موقعیت‌های مکانی تحویل داده می‎شوند تا موقعیت‌های اضطراری را به شما اعلام کنند. وقتی پخش سلولی دریافت می‎شود، ممکن است برنامه‎های مخرب در عملکرد یا کارکرد دستگاه شما اختلال ایجاد کنند."</string>
+    <string name="permdesc_readCellBroadcasts" msgid="6361972776080458979">"به برنامه اجازه می‎دهد پیام‌های پخش سلولی دستگاه شما را بخواند. هشدارهای پخش سلولی در برخی از موقعیت‌های مکانی تحویل داده می‎شوند تا موقعیت‌های اضطراری را به شما اعلام کنند. وقتی پخش سلولی دریافت می‎شود، ممکن است برنامه‎های مخرب در عملکرد یا کارکرد دستگاه شما اختلال ایجاد کنند."</string>
     <string name="permlab_sendSms" msgid="5600830612147671529">"ارسال پیامک ها"</string>
     <string name="permdesc_sendSms" msgid="7094729298204937667">"به برنامه اجازه می‌دهد پیامک‌ها را ارسال کند. این باعث ایجاد هزینه‌های پیش‌بینی نشده می‌شود. برنامه‌های مخرب ممکن است با ارسال پیام بدون تأیید شما هزینه‌هایی را برای شما ایجاد کنند."</string>
     <string name="permlab_sendSmsNoConfirmation" msgid="4781483105951730228">"ارسال پیامک بدون تأیید"</string>
     <string name="permdesc_sendSmsNoConfirmation" msgid="402569800862935907">"به برنامه اجازه می‌دهد پیامک‌ها را ارسال کند. این باعث ایجاد هزینه‌های پیش‌بینی نشده می‌شود. برنامه‌های مخرب ممکن است با ارسال پیام بدون تأیید شما هزینه‌هایی را برای شما ایجاد کنند."</string>
     <string name="permlab_readSms" msgid="8745086572213270480">"خواندن پیام‌های نوشتاری شما (پیامک یا MMS)"</string>
-    <string name="permdesc_readSms" product="tablet" msgid="2467981548684735522">"به برنامه اجازه می‌دهد پیامک‌های ذخیره شده در رایانه لوحی یا سیم کارت شما را بخواند. این ویژگی به برنامه امکان می‌دهد همه پیامک‌ها را صرفنظر از محتوا یا محرمانه بودن آنها بخواند."</string>
-    <string name="permdesc_readSms" product="default" msgid="3695967533457240550">"به برنامه اجازه می‌دهد پیامک‌های ذخیره شده در تلفن یا سیم کارت شما را بخواند. این ویژگی به برنامه امکان می‌دهد همه پیامک‌ها را صرفنظر از محتوا یا محرمانه بودن آنها بخواند."</string>
+    <string name="permdesc_readSms" product="tablet" msgid="2467981548684735522">"به برنامه اجازه می‌دهد پیامک‌های ذخیره شده در رایانه لوحی یا سیم کارت شما را بخواند. این ویژگی به برنامه امکان می‌دهد همه پیامک‌ها را صرفنظر از محتوا یا محرمانه بودن آن‌ها بخواند."</string>
+    <string name="permdesc_readSms" product="default" msgid="3695967533457240550">"به برنامه اجازه می‌دهد پیامک‌های ذخیره شده در تلفن یا سیم کارت شما را بخواند. این ویژگی به برنامه امکان می‌دهد همه پیامک‌ها را صرفنظر از محتوا یا محرمانه بودن آن‌ها بخواند."</string>
     <string name="permlab_writeSms" msgid="3216950472636214774">"ویرایش پیام‌های نوشتاری شما (پیامک یا MMS)"</string>
-    <string name="permdesc_writeSms" product="tablet" msgid="5160413947794501538">"به برنامه اجازه می‎دهد تا در پیامهای کوتاه ذخیره شده در رایانه لوحی یا سیم کارت بنویسد. برنامه‎های مخرب پیامهای شما را حذف می‎کنند."</string>
-    <string name="permdesc_writeSms" product="default" msgid="7268668709052328567">"به برنامه اجازه می‎دهد تا در پیامهای کوتاه ذخیره شده در تلفن یا سیم کارت بنویسد. برنامه‎های مخرب می‎توانند پیامهای شما را حذف کنند."</string>
+    <string name="permdesc_writeSms" product="tablet" msgid="5160413947794501538">"به برنامه اجازه می‎دهد تا در پیام‌های کوتاه ذخیره شده در رایانه لوحی یا سیم کارت بنویسد. برنامه‎های مخرب پیام‌های شما را حذف می‎کنند."</string>
+    <string name="permdesc_writeSms" product="default" msgid="7268668709052328567">"به برنامه اجازه می‎دهد تا در پیام‌های کوتاه ذخیره شده در تلفن یا سیم کارت بنویسد. برنامه‎های مخرب می‎توانند پیام‌های شما را حذف کنند."</string>
     <string name="permlab_receiveWapPush" msgid="5991398711936590410">"دریافت پیام‌های نوشتاری (WAP)"</string>
-    <string name="permdesc_receiveWapPush" msgid="748232190220583385">"به برنامه اجازه می‌دهد پیام‌های WAP را دریافت و پردازش کند. این مجوز می‌تواند پیام‌های ارسالی به شما را بدون نمایش آنها به شما حذف یا کنترل کند."</string>
+    <string name="permdesc_receiveWapPush" msgid="748232190220583385">"به برنامه اجازه می‌دهد پیام‌های WAP را دریافت و پردازش کند. این مجوز می‌تواند پیام‌های ارسالی به شما را بدون نمایش آن‌ها به شما حذف یا کنترل کند."</string>
     <string name="permlab_getTasks" msgid="6466095396623933906">"بازیابی برنامه‎های در حال اجرا"</string>
     <string name="permdesc_getTasks" msgid="7454215995847658102">"به برنامه امکان می‌دهد اطلاعات مربوط به کارهای در حال اجرای اخیر و کنونی را بازیابی کند. این ممکن است به برنامه امکان دهد به اطلاعات مربوط به برنامه‌هایی که در دستگاه استفاده می‌شوند دست یابد."</string>
     <string name="permlab_getDetailedTasks" msgid="6229468674753529501">"بازیابی جزئیات برنامه‌های در حال اجرا"</string>
@@ -222,7 +222,7 @@
     <string name="permlab_reorderTasks" msgid="2018575526934422779">"تنظیم مجدد ترتیب برنامه‎های در حال اجرا"</string>
     <string name="permdesc_reorderTasks" msgid="7734217754877439351">"به برنامه اجازه می‎دهد تا کارها را به پیش‌زمینه و پس‌زمینه منتقل کند. برنامه‎ ممکن است بدون دخالت شما این کار را انجام دهد."</string>
     <string name="permlab_removeTasks" msgid="6821513401870377403">"متوقف کردن برنامه‎های در حال اجرا"</string>
-    <string name="permdesc_removeTasks" msgid="1394714352062635493">"به برنامه اجازه می‎دهد تا کارها را حذف کند و برنامه‎های آنها را متوقف کند. برنامه‎های مخرب می‌توانند در اجرای برنامه‎های دیگر اختلال ایجاد ‎کنند."</string>
+    <string name="permdesc_removeTasks" msgid="1394714352062635493">"به برنامه اجازه می‎دهد تا کارها را حذف کند و برنامه‎های آن‌ها را متوقف کند. برنامه‎های مخرب می‌توانند در اجرای برنامه‎های دیگر اختلال ایجاد ‎کنند."</string>
     <string name="permlab_startAnyActivity" msgid="2918768238045206456">"شروع هر نوع فعالیت"</string>
     <string name="permdesc_startAnyActivity" msgid="997823695343584001">"به برنامه اجازه می‎دهد هر فعالیتی را شروع کند بدون اینکه وضعیت صادرشده یا حفاظت با مجوز در نظر گرفته شود."</string>
     <string name="permlab_setScreenCompatibility" msgid="6975387118861842061">"تنظیم سازگاری با صفحهٔ نمایش"</string>
@@ -240,19 +240,27 @@
     <string name="permlab_forceBack" msgid="652935204072584616">"بستن اجباری برنامه"</string>
     <string name="permdesc_forceBack" msgid="3892295830419513623">"به برنامه اجازه می‎دهد تا برنامه‌ای را که در پیش زمینه است ببندد و برگردد. برای برنامه‎های عادی مورد نیاز نیست."</string>
     <string name="permlab_dump" msgid="1681799862438954752">"بازیابی وضعیت داخلی سیستم"</string>
-    <string name="permdesc_dump" msgid="1778299088692290329">"به برنامه اجازه می‎دهد تا وضعیت داخلی سیستم را بازیابی کند. برنامه‎های مخرب می‎توانند انواع مختلفی از اطلاعات خصوصی و امن را که معمولا به آنها نیاز ندارند، بازیابی کنند."</string>
+    <string name="permdesc_dump" msgid="1778299088692290329">"به برنامه اجازه می‎دهد تا وضعیت داخلی سیستم را بازیابی کند. برنامه‎های مخرب می‎توانند انواع مختلفی از اطلاعات خصوصی و امن را که معمولا به آن‌ها نیاز ندارند، بازیابی کنند."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"بازیابی محتوای صفحه"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"به برنامه اجازه می‎دهد تا محتوای پنجره فعال را بازیابی کند. برنامه‎های مخرب می‎توانند کل محتوای پنجره را بازیابی کنند و همه متن آنرا به غیر از گذرواژه‎ها امتحان کنند."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"خاموش شدن جزئی"</string>
-    <string name="permdesc_shutdown" msgid="7046500838746291775">"مدیر فعالیت را در حالت خاموشی قرار می دهد. خاموشی را به صورت کامل انجام نمی دهد."</string>
+    <string name="permdesc_shutdown" msgid="7046500838746291775">"مدیر فعالیت را در حالت خاموشی قرار می‌دهد. خاموشی را به صورت کامل انجام نمی‌دهد."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"ممانعت از جابجایی برنامه"</string>
     <string name="permdesc_stopAppSwitches" msgid="8262195802582255021">"اجازه نمی‎دهد کاربر به برنامه دیگری برود."</string>
     <string name="permlab_runSetActivityWatcher" msgid="892239094867182656">"نظارت و کنترل راه اندازی همه برنامه"</string>
-    <string name="permdesc_runSetActivityWatcher" msgid="6003603162578577406">"به برنامه اجازه می‎دهد تا نحوه راه اندازی فعالیتهای سیستم را کنترل کند. برنامه‎های مخرب می‎توانند کاملا با سیستم سازگار شوند. این مجوز فقط برای توسعه نیاز است و برای استفاده عادی نیست."</string>
+    <string name="permdesc_runSetActivityWatcher" msgid="6003603162578577406">"به برنامه اجازه می‎دهد تا نحوه راه اندازی فعالیت‌های سیستم را کنترل کند. برنامه‎های مخرب می‎توانند کاملا با سیستم سازگار شوند. این مجوز فقط برای توسعه نیاز است و برای استفاده عادی نیست."</string>
     <string name="permlab_broadcastPackageRemoved" msgid="2576333434893532475">"ارسال پخش بسته حذف شده"</string>
     <string name="permdesc_broadcastPackageRemoved" msgid="6621901216207931089">"به برنامه اجازه می‎دهد تا اعلان حذف بسته برنامه را پخش کند. برنامه‎های مخرب می‎توانند از آن استفاده کنند تا هر برنامه در حال اجرای دیگر را از بین ببرد."</string>
     <string name="permlab_broadcastSmsReceived" msgid="5689095009030336593">"ارسال پخش دریافت شده توسط پیامک"</string>
-    <string name="permdesc_broadcastSmsReceived" msgid="4152037720034365492">"به برنامه اجازه می‎دهد تا اعلان دریافت پیام کوتاه را پخش کند. برنامه‎های مخرب می‎توانند از این برای جعل پیامهای کوتاه ورودی استفاده کنند."</string>
+    <string name="permdesc_broadcastSmsReceived" msgid="4152037720034365492">"به برنامه اجازه می‎دهد تا اعلان دریافت پیام کوتاه را پخش کند. برنامه‎های مخرب می‎توانند از این برای جعل پیام‌های کوتاه ورودی استفاده کنند."</string>
     <string name="permlab_broadcastWapPush" msgid="3145347413028582371">"ارسال پخش دریافت شده توسط WAP-PUSH"</string>
     <string name="permdesc_broadcastWapPush" msgid="4783402525039442729">"به برنامه اجازه می‎دهد تا اعلانی را پخش کند که پیام WAP PUSH دریافت کرده است. برنامه‎های مخرب می‎توانند از آن استفاده کنند تا دریافت پیام MMS را جعل کنند یا محتوای هر صفحه وب را با انواع مخرب جایگزین کنند."</string>
     <string name="permlab_setProcessLimit" msgid="2451873664363662666">"محدود کردن تعداد فرآیندهای در حال اجرا"</string>
@@ -261,11 +269,11 @@
     <string name="permdesc_setAlwaysFinish" msgid="7471310652868841499">"به برنامه اجازه می‎دهد تا به محض اینکه فعالیتها به پس‌زمینه رفتند تمام شوند. برای برنامه‎های عادی نیازی نیست."</string>
     <string name="permlab_batteryStats" msgid="7863923071360031652">"اصلاح کردن آمار مربوط به باتری"</string>
     <string name="permdesc_batteryStats" msgid="6835186932305744068">"به برنامه اجازه می‎دهد تا آمار جمع آوری شده باتری را تغییر دهد. برای استفاده برنامه‎های عادی نیست."</string>
-    <string name="permlab_backup" msgid="470013022865453920">"کنترل نسخه پشتیبان سیستم و بازیابی"</string>
+    <string name="permlab_backup" msgid="470013022865453920">"کنترل نسخهٔ پشتیبان سیستم و بازیابی"</string>
     <string name="permdesc_backup" msgid="6912230525140589891">"به برنامه اجازه می‎دهد پشتیبان سیستم را کنترل کند و مکانیستم را بازیابی کند. برای استفاده برنامه‎های عادی نیست."</string>
-    <string name="permlab_confirm_full_backup" msgid="5557071325804469102">"تهیه نسخه پشتیبان کامل را تأیید کرده یا عملیات را بازیابی کنید"</string>
+    <string name="permlab_confirm_full_backup" msgid="5557071325804469102">"تهیه نسخهٔ پشتیبان کامل را تأیید کرده یا عملیات را بازیابی کنید"</string>
     <string name="permdesc_confirm_full_backup" msgid="1748762171637699562">"به برنامه اجازه می‎دهد تا رابط کاربر تایید نسخه کامل پشتیبان را راه‌اندازی کند. هر برنامه‌ای نمی‎تواند از آن استفاده کند."</string>
-    <string name="permlab_internalSystemWindow" msgid="2148563628140193231">"نمایش پنجره های غیرمجاز"</string>
+    <string name="permlab_internalSystemWindow" msgid="2148563628140193231">"نمایش پنجره‌های غیرمجاز"</string>
     <string name="permdesc_internalSystemWindow" msgid="7458387759461466397">"به برنامه اجازه می‎دهد پنجره‎هایی را ایجاد کند که می‎خواهد توسط رابط کاربر سیستم داخلی استفاده شود. برای استفاده برنامه‎های عادی نیست."</string>
     <string name="permlab_systemAlertWindow" msgid="3543347980839518613">"ترسیم روی برنامه‌های دیگر"</string>
     <string name="permdesc_systemAlertWindow" msgid="4460454022797261814">"به برنامه اجازه می‎دهد تا پنجره‎های هشدار سیستم را نشان دهد. برخی از پنجره‌های هشدار ممکن است کل صفحه را کنترل کنند."</string>
@@ -273,11 +281,11 @@
     <string name="permdesc_setAnimationScale" msgid="7690063428924343571">"به برنامه اجازه می‎دهد سرعت کلی انیمیشن را هر زمان که بخواهد تغییر دهد (انیمیشن‎های سریعتر یا آهسته‎تر)."</string>
     <string name="permlab_manageAppTokens" msgid="1286505717050121370">"مدیریت نشانه‎های برنامه"</string>
     <string name="permdesc_manageAppTokens" msgid="8043431713014395671">"به برنامه اجازه می‎دهد با ایجاد کنارگذر از سفارش عادی Z، نشانه‎های خود را ایجاد و مدیریت کند. برای برنامه‎های عادی مورد نیاز است."</string>
-    <string name="permlab_injectEvents" msgid="1378746584023586600">"کلیدها و دکمه های کنترل را فشار دهید"</string>
+    <string name="permlab_injectEvents" msgid="1378746584023586600">"کلیدها و دکمه‌های کنترل را فشار دهید"</string>
     <string name="permdesc_injectEvents" product="tablet" msgid="206352565599968632">"به برنامه اجازه می‎دهد تا رویدادهای ورودی خود (فشردن کلیدها و غیره) را تحویل دهد. برنامه‎های مخرب می‎توانند از آن استفاده کنند تا کارکرد رایانه لوحی را کنترل کنند."</string>
     <string name="permdesc_injectEvents" product="default" msgid="653128057572326253">"به برنامه اجازه می‎دهد تا رویدادهای ورودی خود را به برنامه‎های دیگر تحویل دهد (فشردن کلیدها و غیره). برنامه‎های مخرب می‎توانند از آن برای کنترل کارکرد تلفن استفاده کنند."</string>
-    <string name="permlab_readInputState" msgid="469428900041249234">"مواردی که می نویسید و کارهایی که انجام می دهید را ضبط کنید"</string>
-    <string name="permdesc_readInputState" msgid="8387754901688728043">"به برنامه اجازه می‎دهد تا کلیدهایی را که هنگام تعامل با برنامه دیگر فشار می‎دهید ببیند (مانند تایپ کردن گذرواژه). برای برنامه‎های عادی مورد نیاز نیست."</string>
+    <string name="permlab_readInputState" msgid="469428900041249234">"مواردی که می‌نویسید و کارهایی که انجام می‌دهید را ضبط کنید"</string>
+    <string name="permdesc_readInputState" msgid="8387754901688728043">"به برنامه اجازه می‎دهد تا کلیدهایی را که هنگام تعامل با برنامهٔ دیگر فشار می‎دهید ببیند (مانند تایپ کردن گذرواژه). برای برنامه‎های عادی مورد نیاز نیست."</string>
     <string name="permlab_bindInputMethod" msgid="3360064620230515776">"پیوند شده به روش ورودی"</string>
     <string name="permdesc_bindInputMethod" msgid="3250440322807286331">"به دارنده این دستگاه اجازه می‎دهد تا به رابط سطح بالای یک روش ورودی متصل شود. این ویژگی هیچگاه برای برنامه‎های معمولی ضروری نمی‎باشد."</string>
     <string name="permlab_bindAccessibilityService" msgid="5357733942556031593">"اتصال به سرویس دسترسی"</string>
@@ -294,7 +302,7 @@
     <string name="permdesc_bindDeviceAdmin" msgid="569715419543907930">"به دارنده اجازه می‎دهد اهداف خود را به سرپرست دستگاه ارسال کند. برنامه‎های معمولی هیچگاه به این ویژگی نیازی ندارند."</string>
     <string name="permlab_setOrientation" msgid="3365947717163866844">"تغییر جهت صفحه"</string>
     <string name="permdesc_setOrientation" msgid="3046126619316671476">"به برنامه اجازه می‎دهد تا چرخش صفحه را هر وقت بخواهد تغییر دهد. برای برنامه‎های عادی نیاز نیست."</string>
-    <string name="permlab_setPointerSpeed" msgid="9175371613322562934">"تغییر سرعت اشاره گر"</string>
+    <string name="permlab_setPointerSpeed" msgid="9175371613322562934">"تغییر سرعت اشاره‌گر"</string>
     <string name="permdesc_setPointerSpeed" msgid="6866563234274104233">"به برنامه اجازه می‎دهد تا سرعت ماوس و پد کنترل را هر وقت خواست تغییر دهد. برای برنامه‎های عادی نیاز نیست."</string>
     <string name="permlab_setKeyboardLayout" msgid="4778731703600909340">"تغییر چیدمان صفحه کلید"</string>
     <string name="permdesc_setKeyboardLayout" msgid="8480016771134175879">"به برنامه اجازه می‌دهد تا چیدمان صفحه کلید را تغییر دهد. این کار هیچ‌گاه برای برنامه‌های عادی نیاز نیست."</string>
@@ -308,28 +316,28 @@
     <string name="permlab_clearAppUserData" msgid="274109191845842756">"حذف داده‎های برنامه‎های دیگر"</string>
     <string name="permdesc_clearAppUserData" msgid="4625323684125459488">"به برنامه اجازه می‎دهد تا داده‎های کاربر را پاک کند."</string>
     <string name="permlab_deleteCacheFiles" msgid="3128665571837408675">"حذف حافظه پنهان برنامه‎های دیگر"</string>
-    <string name="permdesc_deleteCacheFiles" msgid="3812998599006730196">"به برنامه اجازه می‎دهد تا فایلهای حافظه پنهان را پاک کند."</string>
+    <string name="permdesc_deleteCacheFiles" msgid="3812998599006730196">"به برنامه اجازه می‎دهد تا فایل‌های حافظه پنهان را پاک کند."</string>
     <string name="permlab_getPackageSize" msgid="7472921768357981986">"اندازه گیری فضای حافظه برنامه"</string>
     <string name="permdesc_getPackageSize" msgid="3921068154420738296">"به برنامه اجازه می‎دهد تا کدها، داده‎ها و اندازه‎های حافظه پنهان خود را بازیابی کند"</string>
     <string name="permlab_installPackages" msgid="2199128482820306924">"نصب مستقیم برنامه"</string>
     <string name="permdesc_installPackages" msgid="5628530972548071284">"به برنامه اجازه می‎دهد تا بسته‎های Android به روز شده یا جدید را نصب کند. برنامه‎های مخرب می‎توانند از این استفاده کنند تا برنامه‎های جدید را با مجوزهای قوی اختیاری اضافه کنند."</string>
     <string name="permlab_clearAppCache" msgid="7487279391723526815">"حذف تمام داده‎های حافظه پنهان برنامه"</string>
-    <string name="permdesc_clearAppCache" product="tablet" msgid="3523396284474042284">"به برنامه اجازه می‎دهد تا حافظه رایانه لوحی را با حذف فایلها در فهرست حافظه پنهان برنامه آزاد کند. معمولا دسترسی برای پردازش سیستم بسیار محدود است."</string>
-    <string name="permdesc_clearAppCache" product="default" msgid="5067988373366292186">"به برنامه اجازه می‎دهد تا با حذف فایلها در فهرست حافظه پنهان برنامه حافظه تلفن را آزاد کند. معمولا دسترسی به پردازش سیستم بسیار محدود است."</string>
+    <string name="permdesc_clearAppCache" product="tablet" msgid="3523396284474042284">"به برنامه اجازه می‎دهد تا حافظه رایانه لوحی را با حذف فایل‌ها در فهرست حافظه پنهان برنامه آزاد کند. معمولا دسترسی برای پردازش سیستم بسیار محدود است."</string>
+    <string name="permdesc_clearAppCache" product="default" msgid="5067988373366292186">"به برنامه اجازه می‎دهد تا با حذف فایل‌ها در فهرست حافظه پنهان برنامه حافظه تلفن را آزاد کند. معمولا دسترسی به پردازش سیستم بسیار محدود است."</string>
     <string name="permlab_movePackage" msgid="3289890271645921411">"انتقال منابع برنامه"</string>
     <string name="permdesc_movePackage" msgid="319562217778244524">"به برنامه اجازه می‎دهد تا منابع برنامه را از رسانه داخلی به رسانه خارجی و بالعکس منتقل کند."</string>
-    <string name="permlab_readLogs" msgid="6615778543198967614">"مطالعه داده های گزارش حساس"</string>
-    <string name="permdesc_readLogs" product="tablet" msgid="82061313293455151">"به برنامه اجازه می‎دهد فایلهای مختلف گزارش سیستم را بخواند. با این کار، برنامه اطلاعات کلی مربوط به کاری که با رایانه لوحی انجام می‎دهید را کشف می کند، که ممکن است حاوی اطلاعات شخصی و خصوصی باشند."</string>
-    <string name="permdesc_readLogs" product="default" msgid="2063438140241560443">"به برنامه اجازه می‎دهد تا فایلهای گزارش مختلف سیستم را بخواند. این کار به برنامه اجازه می‎دهد اطلاعات عمومی کاری که با تلفن انجام می‎دهید مثلا اطلاعات خصوصی و شخصی را کشف کند."</string>
+    <string name="permlab_readLogs" msgid="6615778543198967614">"مطالعه داده‌های گزارش حساس"</string>
+    <string name="permdesc_readLogs" product="tablet" msgid="82061313293455151">"به برنامه اجازه می‎دهد فایل‌های مختلف گزارش سیستم را بخواند. با این کار، برنامه اطلاعات کلی مربوط به کاری که با رایانه لوحی انجام می‎دهید را کشف می‌کند، که ممکن است حاوی اطلاعات شخصی و خصوصی باشند."</string>
+    <string name="permdesc_readLogs" product="default" msgid="2063438140241560443">"به برنامه اجازه می‎دهد تا فایل‌های گزارش مختلف سیستم را بخواند. این کار به برنامه اجازه می‎دهد اطلاعات عمومی کاری که با تلفن انجام می‎دهید مثلا اطلاعات خصوصی و شخصی را کشف کند."</string>
     <string name="permlab_anyCodecForPlayback" msgid="715805555823881818">"استفاده از هر رمزگشای رسانه‎ای برای بازپخش"</string>
     <string name="permdesc_anyCodecForPlayback" msgid="8283912488433189010">"اجازه می‎دهد برنامه از هر رمزگشای رسانه نصب شده‌ای استفاده کند تا برای پخش رمزگشایی شود."</string>
     <string name="permlab_diagnostic" msgid="8076743953908000342">"خواندن/نوشتن منابع متعلق به تشخیص"</string>
-    <string name="permdesc_diagnostic" msgid="6608295692002452283">"به برنامه اجازه می‌دهد هر منبعی را که متعلق به گروه تشخیص است بخواند و در آن بنویسد؛ بعنوان مثال، فایل‌های /dev. این امر بصورت بالقوه می‌تواند بر پایدار بودن و امنیت سیستم تأثیر بگذارد. این تنها باید برای تشخیص‎‌های مختص سخت‌افزار توسط تولیدکننده یا اپراتور استفاده شود."</string>
+    <string name="permdesc_diagnostic" msgid="6608295692002452283">"به برنامه اجازه می‌دهد هر منبعی را که متعلق به گروه تشخیص است بخواند و در آن بنویسد؛ به‌عنوان مثال، فایل‌های /dev. این امر به‌صورت بالقوه می‌تواند بر پایدار بودن و امنیت سیستم تأثیر بگذارد. این تنها باید برای تشخیص‎‌های مختص سخت‌افزار توسط تولیدکننده یا اپراتور استفاده شود."</string>
     <string name="permlab_changeComponentState" msgid="6335576775711095931">"فعال یا غیر فعال کردن اجزای برنامه"</string>
-    <string name="permdesc_changeComponentState" product="tablet" msgid="8887435740982237294">"به برنامه اجازه می‎دهد تا فعال بودن یا نبودن اجزای برنامه دیگر را تغییر دهد. برنامه‎های مخرب می‎توانند از آن استفاده کنند تا قابلیتهای مهم رایانه لوحی را غیرفعال کنند. باید دقت کرد که با این مجوز ممکن است وضعیت اجزای برنامه ناپایدار، ناهماهنگ یا غیرقابل استفاده شود."</string>
-    <string name="permdesc_changeComponentState" product="default" msgid="1827232484416505615">"به برنامه اجازه می‎دهد تا فعال بودن یا غیرفعال بودن جزئیات برنامه دیگر را تغییر دهد. برنامه‎های مخرب می‎توانند از آن استفاده کنند تا ویژگیهای مهم را غیرفعال کنند. برای این مجوز باید دقت کنید چون ممکن است وضعیت جزئیات برنامه ناپایدار، بی‎ثبات یا غیرقابل استفاده شود."</string>
+    <string name="permdesc_changeComponentState" product="tablet" msgid="8887435740982237294">"به برنامه اجازه می‎دهد تا فعال بودن یا نبودن اجزای برنامهٔ دیگر را تغییر دهد. برنامه‎های مخرب می‎توانند از آن استفاده کنند تا قابلیتهای مهم رایانه لوحی را غیرفعال کنند. باید دقت کرد که با این مجوز ممکن است وضعیت اجزای برنامه ناپایدار، ناهماهنگ یا غیرقابل استفاده شود."</string>
+    <string name="permdesc_changeComponentState" product="default" msgid="1827232484416505615">"به برنامه اجازه می‎دهد تا فعال بودن یا غیرفعال بودن جزئیات برنامهٔ دیگر را تغییر دهد. برنامه‎های مخرب می‎توانند از آن استفاده کنند تا ویژگی‌های مهم را غیرفعال کنند. برای این مجوز باید دقت کنید چون ممکن است وضعیت جزئیات برنامه ناپایدار، بی‎ثبات یا غیرقابل استفاده شود."</string>
     <string name="permlab_grantRevokePermissions" msgid="4627315351093508795">"ارائه یا لغو مجوزها"</string>
-    <string name="permdesc_grantRevokePermissions" msgid="4088642654085850662">"به یک برنامه کاربردی اجازه می‌دهد تا مجوزهای خاصی را برای خود یا دیگر برنامه‌ها ارائه کرده یا آنها را لغو کند. برنامه‌های مضر از این حالت برای دسترسی به ویژگی‌هایی استفاده می‌کنند که شما اجازه آن را در اختیارشان قرار نداده‌اید."</string>
+    <string name="permdesc_grantRevokePermissions" msgid="4088642654085850662">"به یک برنامه کاربردی اجازه می‌دهد تا مجوزهای خاصی را برای خود یا دیگر برنامه‌ها ارائه کرده یا آن‌ها را لغو کند. برنامه‌های مضر از این حالت برای دسترسی به ویژگی‌هایی استفاده می‌کنند که شما اجازه آن را در اختیارشان قرار نداده‌اید."</string>
     <string name="permlab_setPreferredApplications" msgid="8463181628695396391">"تنظیم برنامه‎های ترجیحی"</string>
     <string name="permdesc_setPreferredApplications" msgid="4973986762241783712">"به برنامه اجازه می‎دهد تا برنامه‎های ترجیحی شما را تغییر دهد. برنامه‎های مخرب می‎توانند بدون اعلان برنامه‎هایی را که اجرا می‎شوند، تغییر دهند خود را به جای برنامه‎های کنونی قلمداد کنند تا داده‎های شخصی را از شما جمع آوری کنند."</string>
     <string name="permlab_writeSettings" msgid="2226195290955224730">"اصلاح تنظیمات سیستم"</string>
@@ -338,7 +346,7 @@
     <string name="permdesc_writeSecureSettings" msgid="8159535613020137391">"به برنامه اجازه می‎دهد داده‎های تنظیمات امنیتی سیستم را تغییر دهد. برای استفاده برنامه‎های عادی نیست."</string>
     <string name="permlab_writeGservices" msgid="2149426664226152185">"اصلاح کردن نقشه سرویس‌های Google"</string>
     <string name="permdesc_writeGservices" msgid="1287309437638380229">"به برنامه اجازه می‎دهد تا نقشه سرویس‌های Google را تغییر دهد. برای استفاده برنامه‎های عادی نیست."</string>
-    <string name="permlab_receiveBootCompleted" msgid="5312965565987800025">"اجرا هنگام راه‌اندازی"</string>
+    <string name="permlab_receiveBootCompleted" msgid="5312965565987800025">"اجرا شدن در هنگام راه‌اندازی"</string>
     <string name="permdesc_receiveBootCompleted" product="tablet" msgid="7390304664116880704">"به برنامه اجازه می‎دهد تا به محض اتمام راه‎اندازی سیستم خودبخود شروع به کار کند. این کار ممکن است باعث شود مدت زمان بیشتری صرف شدوع به کار رایانه لوحی شود و به برنامه اجازه می‎دهد تا با اجرای همیشگی رایانه لوحی را کند کند."</string>
     <string name="permdesc_receiveBootCompleted" product="default" msgid="513950589102617504">"به برنامه اجازه می‎دهد تا به محض اینکه سیستم راه‎اندازی شد خودبخود شروع به کار کند. این کار باعث می‎شود مدت زمان بیشتری صرف شود تا تلفن شروع به کار کند و به برنامه اجازه می‎دهد تا کل تلفن کند شود چون همیشه در حال اجرا شدن است."</string>
     <string name="permlab_broadcastSticky" msgid="7919126372606881614">"ارسال پخش چسبنده"</string>
@@ -361,18 +369,18 @@
     <string name="permlab_writeProfile" msgid="907793628777397643">"اصلاح کارت تماس شما"</string>
     <string name="permdesc_writeProfile" product="default" msgid="5552084294598465899">"به برنامه اجازه می‎دهد تا اطلاعات نمایه شخصی ذخیره شده در دستگاه شما، مانند نام و اطلاعات تماس شما را تغییر دهد یا اضافه کند. یعنی برنامه‎ می‎تواند شما را شناسایی کند و ممکن است اطلاعات نمایه شما را برای دیگران ارسال کند."</string>
     <string name="permlab_readSocialStream" product="default" msgid="1268920956152419170">"خواندن جریان اجتماعی شما"</string>
-    <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"به برنامه اجازه می‌دهد به به‌روزرسانی‌های اجتماعی از طرف شما و دوستان شما دسترسی پیدا کرده و آنها را همگام‌سازی کند. دقت کنید که هنگام اشتراک‌گذاری -- این ویژگی به برنامه اجازه می‌دهد ارتباطات بین شما و دوستان شما را در شبکه‌های اجتماعی، صرفنظر از محرمانه بودن آنها بخواند. توجه: این مجوز ممکن است در همه شبکه‌های اجتماعی اجرا نشود."</string>
+    <string name="permdesc_readSocialStream" product="default" msgid="4255706027172050872">"به برنامه اجازه می‌دهد به به‌روزرسانی‌های اجتماعی از طرف شما و دوستان شما دسترسی پیدا کرده و آن‌ها را همگام‌سازی کند. دقت کنید که هنگام اشتراک‌گذاری -- این ویژگی به برنامه اجازه می‌دهد ارتباطات بین شما و دوستان شما را در شبکه‌های اجتماعی، صرفنظر از محرمانه بودن آن‌ها بخواند. توجه: این مجوز ممکن است در همه شبکه‌های اجتماعی اجرا نشود."</string>
     <string name="permlab_writeSocialStream" product="default" msgid="3504179222493235645">"نوشتن در جریان اجتماعی شما"</string>
-    <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"به برنامه اجازه می‌دهد به‌روزرسانی‌های اجتماعی از طرف دوستان شما را نمایش دهد. دقت کنید هنگام اشتراک‌گذاری اطلاعات -- این ویژگی به برنامه اجازه می‌دهد پیام‌هایی را که به نظر می‌رسد از طرف یکی از دوستان شما باشد ایجاد کند. توجه: این مجوز در همه شبکه‌های اجتماعی قابل اجرا نمی‌باشد."</string>
+    <string name="permdesc_writeSocialStream" product="default" msgid="3086557552204114849">"به برنامه اجازه می‌دهد به‌روزرسانی‌های اجتماعی از طرف دوستان شما را نمایش دهد. دقت کنید هنگام اشتراک‌گذاری اطلاعات -- این ویژگی به برنامه اجازه می‌دهد پیام‌هایی را که به نظر می‌رسد از طرف یکی از دوستان شما باشد ایجاد کند. توجه: این مجوز در همه شبکه‌های اجتماعی قابل اجرا نیست."</string>
     <string name="permlab_readCalendar" msgid="5972727560257612398">"خواندن رویدادهای تقویم به همراه اطلاعات محرمانه"</string>
-    <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"به برنامه امکان می‌دهد همه رویدادهای تقویم ذخیره شده در رایانه لوحی شما را بخواند، از جمله رویدادهای دوستان یا همکاران. این ممکن است به برنامه امکان دهد داده‌های تقویم شما را صرفنظر از محرمانه یا حساس بودن آنها به اشتراک گذاشته یا ذخیره کند."</string>
-    <string name="permdesc_readCalendar" product="default" msgid="7434548682470851583">"به برنامه امکان می‌دهد همه رویدادهای تقویم ذخیره شده در تلفن شما را بخواند، از جمله رویدادهای دوستان یا همکاران. این ممکن است به برنامه امکان دهد داده‌های تقویم شما را صرفنظر از محرمانه یا حساس بودن آنها به اشتراک گذاشته یا ذخیره کند."</string>
+    <string name="permdesc_readCalendar" product="tablet" msgid="4216462049057658723">"به برنامه امکان می‌دهد همه رویدادهای تقویم ذخیره شده در رایانه لوحی شما را بخواند، از جمله رویدادهای دوستان یا همکاران. این ممکن است به برنامه امکان دهد داده‌های تقویم شما را صرفنظر از محرمانه یا حساس بودن آن‌ها به اشتراک گذاشته یا ذخیره کند."</string>
+    <string name="permdesc_readCalendar" product="default" msgid="7434548682470851583">"به برنامه امکان می‌دهد همه رویدادهای تقویم ذخیره شده در تلفن شما را بخواند، از جمله رویدادهای دوستان یا همکاران. این ممکن است به برنامه امکان دهد داده‌های تقویم شما را صرفنظر از محرمانه یا حساس بودن آن‌ها به اشتراک گذاشته یا ذخیره کند."</string>
     <string name="permlab_writeCalendar" msgid="8438874755193825647">"افزودن یا تغییر رویدادهای تقویم و ارسال ایمیل به مهمانان بدون دخالت مالک"</string>
     <string name="permdesc_writeCalendar" product="tablet" msgid="6679035520113668528">"به برنامه اجازه می‌دهد رویدادهایی را که می‌توانید در رایانه لوحی خود اصلاح نمایید، از جمله رویدادهای دوستان یا همکاران خود را، اضافه یا حذف کرده یا تغییر دهد. این ویژگی ممکن است به برنامه اجازه دهد پیام‌هایی را که به نظر می‌رسد از مالکین تقویم رسیده است ارسال نموده یا رویدادها را بدون اطلاع مالک اصلاح کنند."</string>
     <string name="permdesc_writeCalendar" product="default" msgid="2324469496327249376">"به برنامه اجازه می‌دهد رویدادهایی را که می‌توانید در تلفن خود اصلاح نمایید، از جمله رویدادهای دوستان یا همکاران خود را، اضافه یا حذف کرده یا تغییر دهد. این ویژگی ممکن است به برنامه اجازه دهد پیام‌هایی را که به نظر می‌رسد از مالکین تقویم رسیده است ارسال نموده یا رویدادها را بدون اطلاع مالک اصلاح کنند."</string>
     <string name="permlab_accessMockLocation" msgid="8688334974036823330">"منابع مکان کاذب برای تست"</string>
     <string name="permdesc_accessMockLocation" msgid="5808711039482051824">"منابع موقعیت مکانی کاذب را برای تست کردن یا نصب یک ارائه‌دهنده موقعیت مکانی جدید ایجاد نمایید. این کار به برنامه امکان می‌دهد موقعیت مکانی و/یا وضعیت گزارش داده شده توسط سایر منابع موقعیت مکانی مانند GPS یا ارائه‌دهندگان موقعیت مکانی را نادیده بگیرد."</string>
-    <string name="permlab_accessLocationExtraCommands" msgid="2836308076720553837">"دسترسی به فرمان های بیشتر ارائه دهنده مکان"</string>
+    <string name="permlab_accessLocationExtraCommands" msgid="2836308076720553837">"دسترسی به فرمان‌های بیشتر ارائه دهنده مکان"</string>
     <string name="permdesc_accessLocationExtraCommands" msgid="5945166642335800763">"به برنامه اجازه می‎دهد تا به فرمان‌های ارائه‎دهنده موقعیت مکانی دیگری دسترسی داشته باشد. این ویژگی ممکن است باعث مختل شدن عملکرد GPS یا دیگر منابع موقعیت مکانی توسط این برنامه شود."</string>
     <string name="permlab_installLocationProvider" msgid="6578101199825193873">"مجوز برای نصب یک ارائه دهنده مکان"</string>
     <string name="permdesc_installLocationProvider" msgid="9066146120470591509">"منابع موقعیت مکانی کاذب را برای تست کردن یا نصب یک ارائه‌دهنده موقعیت مکانی جدید ایجاد نمایید. این کار به برنامه امکان می‌دهد موقعیت مکانی و/یا وضعیت گزارش داده شده توسط سایر منابع موقعیت مکانی مانند GPS یا ارائه‌دهندگان موقعیت مکانی را نادیده بگیرد."</string>
@@ -382,7 +390,7 @@
     <string name="permlab_accessCoarseLocation" msgid="7422827215441638984">"موقعیت مکانی تقریبی (مبتنی بر شبکه)"</string>
     <string name="permdesc_accessCoarseLocation" msgid="5383798877137640762">"به موقعیت مکانی تقریبی ارا‌ئه‌دهندگان موقعیت مکانی با استفاده از منابع شبکه مانند برج مخابراتی و Wi-Fi دسترسی پیدا کنید. وقتی این سرویس‌های موقعیت مکانی موجود و فعال باشند، این مجوز به برنامه امکان می‌دهد موقعیت مکانی تقریبی شما را تعیین کند."</string>
     <string name="permlab_accessSurfaceFlinger" msgid="2363969641792388947">"دسترسی به SurfaceFlinger"</string>
-    <string name="permdesc_accessSurfaceFlinger" msgid="1041619516733293551">"اجازه می‎دهد برنامه از ویژگیهای سطح پایین SurfaceFlinger استفاده کند."</string>
+    <string name="permdesc_accessSurfaceFlinger" msgid="1041619516733293551">"اجازه می‎دهد برنامه از ویژگی‌های سطح پایین SurfaceFlinger استفاده کند."</string>
     <string name="permlab_readFrameBuffer" msgid="6690504248178498136">"خواندن بافر قاب"</string>
     <string name="permdesc_readFrameBuffer" msgid="4937405521809454680">"به برنامه اجازه می‎دهد تا محتوای بافر کادر را بخواند."</string>
     <string name="permlab_modifyAudioSettings" msgid="6095859937069146086">"تغییر تنظیمات صوتی"</string>
@@ -399,47 +407,47 @@
     <string name="permlab_reboot" product="default" msgid="2898560872462638242">"اجبار برنامه برای راه اندازی مجدد"</string>
     <string name="permdesc_reboot" product="tablet" msgid="8172056180063700741">"به برنامه اجازه می‎دهد تا سبب راه اندازی مجدد رایانه لوحی شود."</string>
     <string name="permdesc_reboot" product="default" msgid="5326008124289989969">"به برنامه اجازه می‎دهد تا سبب راه اندازی مجدد گوشی شود."</string>
-    <string name="permlab_mount_unmount_filesystems" product="nosdcard" msgid="2927361537942591841">"دسترسی به سیستم فایل حافظه USB"</string>
+    <string name="permlab_mount_unmount_filesystems" product="nosdcard" msgid="2927361537942591841">"دسترسی به سیستم فایل حافظهٔ USB"</string>
     <string name="permlab_mount_unmount_filesystems" product="default" msgid="4402305049890953810">"دسترسی به سیستم فایل کارت SD"</string>
-    <string name="permdesc_mount_unmount_filesystems" msgid="1829290701658992347">"به برنامه اجازه می‎دهد تا فایلهای سیستمی در حافظه جداشدنی نصب شود یا نصب آن لغو شود."</string>
-    <string name="permlab_mount_format_filesystems" product="nosdcard" msgid="6227819582624904972">"پاک کردن حافظه USB"</string>
+    <string name="permdesc_mount_unmount_filesystems" msgid="1829290701658992347">"به برنامه اجازه می‎دهد تا فایل‌های سیستمی در حافظه جداشدنی نصب شود یا نصب آن لغو شود."</string>
+    <string name="permlab_mount_format_filesystems" product="nosdcard" msgid="6227819582624904972">"پاک کردن حافظهٔ USB"</string>
     <string name="permlab_mount_format_filesystems" product="default" msgid="262582698639274056">"پاک کردن کارت SD"</string>
     <string name="permdesc_mount_format_filesystems" msgid="8784268246779198627">"به برنامه اجازه می‎دهد تا حافظه جداشدنی را فرمت کند."</string>
-    <string name="permlab_asec_access" msgid="3411338632002193846">"دریافت اطلاعات مربوط به حافظه داخلی"</string>
-    <string name="permdesc_asec_access" msgid="3094563844593878548">"به برنامه اجازه می‎دهد تا اطلاعات مربوط به حافظه داخلی را دریافت کند."</string>
-    <string name="permlab_asec_create" msgid="6414757234789336327">"ایجاد حافظه داخلی"</string>
-    <string name="permdesc_asec_create" msgid="4558869273585856876">"به برنامه اجازه می‎دهد تا حافظه داخلی ایجاد کند."</string>
-    <string name="permlab_asec_destroy" msgid="526928328301618022">"خراب کردن حافظه داخلی"</string>
-    <string name="permdesc_asec_destroy" msgid="7218749286145526537">"به برنامه اجازه می‎دهد تا حافظه داخلی را از بین ببرد."</string>
-    <string name="permlab_asec_mount_unmount" msgid="8877998101944999386">"نصب/لغو نصب حافظه داخلی"</string>
-    <string name="permdesc_asec_mount_unmount" msgid="3451360114902490929">"به برنامه اجازه می‎دهد حافظه داخلی را نصب کرده/نصب آنرا لغو کند."</string>
+    <string name="permlab_asec_access" msgid="3411338632002193846">"دریافت اطلاعات مربوط به حافظهٔ داخلی"</string>
+    <string name="permdesc_asec_access" msgid="3094563844593878548">"به برنامه اجازه می‎دهد تا اطلاعات مربوط به حافظهٔ داخلی را دریافت کند."</string>
+    <string name="permlab_asec_create" msgid="6414757234789336327">"ایجاد حافظهٔ داخلی"</string>
+    <string name="permdesc_asec_create" msgid="4558869273585856876">"به برنامه اجازه می‎دهد تا حافظهٔ داخلی ایجاد کند."</string>
+    <string name="permlab_asec_destroy" msgid="526928328301618022">"خراب کردن حافظهٔ داخلی"</string>
+    <string name="permdesc_asec_destroy" msgid="7218749286145526537">"به برنامه اجازه می‎دهد تا حافظهٔ داخلی را از بین ببرد."</string>
+    <string name="permlab_asec_mount_unmount" msgid="8877998101944999386">"نصب/لغو نصب حافظهٔ داخلی"</string>
+    <string name="permdesc_asec_mount_unmount" msgid="3451360114902490929">"به برنامه اجازه می‎دهد حافظهٔ داخلی را نصب کرده/نصب آنرا لغو کند."</string>
     <string name="permlab_asec_rename" msgid="7496633954080472417">"نامگذاری مجدد دستگاه ذخیره داخلی"</string>
-    <string name="permdesc_asec_rename" msgid="1794757588472127675">"به برنامه اجازه می‎دهد تا نام حافظه داخلی را تغییر دهد."</string>
+    <string name="permdesc_asec_rename" msgid="1794757588472127675">"به برنامه اجازه می‎دهد تا نام حافظهٔ داخلی را تغییر دهد."</string>
     <string name="permlab_vibrate" msgid="7696427026057705834">"کنترل لرزش"</string>
     <string name="permdesc_vibrate" msgid="6284989245902300945">"به برنامه اجازه می‎دهد تا لرزاننده را کنترل کند."</string>
     <string name="permlab_flashlight" msgid="2155920810121984215">"کنترل چراغ قوه"</string>
     <string name="permdesc_flashlight" msgid="6522284794568368310">"به برنامه اجازه می‎دهد تا چراغ قوه را کنترل کند."</string>
-    <string name="permlab_manageUsb" msgid="1113453430645402723">"مدیریت تنظیمات برگزیده و مجوزها برای دستگاه های USB"</string>
-    <string name="permdesc_manageUsb" msgid="7776155430218239833">"به برنامه اجازه می‎دهد تا تنظیمات برگزیده و مجوزهای دستگاههای USB را مدیریت کند."</string>
+    <string name="permlab_manageUsb" msgid="1113453430645402723">"مدیریت تنظیمات برگزیده و مجوزها برای دستگاه‌های USB"</string>
+    <string name="permdesc_manageUsb" msgid="7776155430218239833">"به برنامه اجازه می‎دهد تا تنظیمات برگزیده و مجوزهای دستگاه‌های USB را مدیریت کند."</string>
     <string name="permlab_accessMtp" msgid="4953468676795917042">"اعمال پروتکل MTP"</string>
-    <string name="permdesc_accessMtp" msgid="6532961200486791570">"دسترسی به درایور کرنل MTP جهت اعمال پروتکل MTP USB را اجازه می دهد."</string>
+    <string name="permdesc_accessMtp" msgid="6532961200486791570">"دسترسی به درایور کرنل MTP جهت اعمال پروتکل MTP USB را اجازه می‌دهد."</string>
     <string name="permlab_hardware_test" msgid="4148290860400659146">"تست سخت افزار"</string>
-    <string name="permdesc_hardware_test" msgid="6597964191208016605">"به برنامه اجازه می‎دهد به منظور تست سخت‌افزار، قسمتهای جانبی مختلف را کنترل کنند."</string>
-    <string name="permlab_callPhone" msgid="3925836347681847954">"تماس مستقیم با شماره تلفن ها"</string>
+    <string name="permdesc_hardware_test" msgid="6597964191208016605">"به برنامه اجازه می‎دهد به منظور تست سخت‌افزار، قسمت‌های جانبی مختلف را کنترل کنند."</string>
+    <string name="permlab_callPhone" msgid="3925836347681847954">"تماس مستقیم با شماره تلفن‌ها"</string>
     <string name="permdesc_callPhone" msgid="3740797576113760827">"به برنامه اجازه می‌دهد بدون دخالت شما با شماره‌های تلفن تماس بگیرد. این ممکن است باعث ایجاد هزینه یا تماس‌های پیش‌بینی نشده شود. توجه داشته باشید که این به برنامه اجازه نمی‌دهد به برقراری تماس‌های اضطراری بپردازد. برنامه‌های مخرب ممکن است با برقراری تماس بدون تأیید شما هزینه‌هایی را برای شما ایجاد کنند."</string>
     <string name="permlab_callPrivileged" msgid="4198349211108497879">"تماس مستقیم با هر شماره تلفنی"</string>
-    <string name="permdesc_callPrivileged" msgid="1689024901509996810">"به برنامه اجازه می‎دهد تا بدون دخالت با هر شماره تلفنی تماس بگیرد، از جمله شماره‎های اضطراری. برنامه‎های مخرب می‎توانند تماسهای غیرضروری و غیر قانونی با خدمات اضطراری بگیرند."</string>
+    <string name="permdesc_callPrivileged" msgid="1689024901509996810">"به برنامه اجازه می‎دهد تا بدون دخالت با هر شماره تلفنی تماس بگیرد، از جمله شماره‎های اضطراری. برنامه‎های مخرب می‎توانند تماس‌های غیرضروری و غیر قانونی با خدمات اضطراری بگیرند."</string>
     <string name="permlab_performCdmaProvisioning" product="tablet" msgid="4842576994144604821">"راه اندازی مستقیم تنظیم رایانه لوحی CDMA"</string>
     <string name="permlab_performCdmaProvisioning" product="default" msgid="5604848095315421425">"شروع مستقیم راه اندازی تلفن CDMA"</string>
     <string name="permdesc_performCdmaProvisioning" msgid="1994193538802314186">"به برنامه اجازه می‎دهد تا شرایط مقررات CDMA را شروع کند. برنامه‎های مخرب می‎توانند شرایط مقررات CDMA را در مواقع غیرضروری شروع کند."</string>
-    <string name="permlab_locationUpdates" msgid="7785408253364335740">"کنترل اعلان های به‌روزرسانی مکان"</string>
+    <string name="permlab_locationUpdates" msgid="7785408253364335740">"کنترل اعلان‌های به‌روزرسانی مکان"</string>
     <string name="permdesc_locationUpdates" msgid="1120741557891438876">"به برنامه اجازه می‎دهد اعلانهای به‎روزرسانی موقعیت مکانی را از رادیو فعال/غیرفعال کند. برای استفاده برنامه‎های عادی نیست."</string>
     <string name="permlab_checkinProperties" msgid="7855259461268734914">"دسترسی به مشخصات اعلام ورود"</string>
-    <string name="permdesc_checkinProperties" msgid="4024526968630194128">"به برنامه اجازه می‎دهد دسترسی به ویژگیهای بارگذاری شده توسط سرویسهای ورود را بخواند/بنویسد. برای استفاده برنامه‎های عادی مورد نیاز نیست."</string>
-    <string name="permlab_bindGadget" msgid="776905339015863471">"انتخاب ابزارک ها"</string>
+    <string name="permdesc_checkinProperties" msgid="4024526968630194128">"به برنامه اجازه می‎دهد دسترسی به ویژگی‌های بارگذاری شده توسط سرویس‌های ورود را بخواند/بنویسد. برای استفاده برنامه‎های عادی مورد نیاز نیست."</string>
+    <string name="permlab_bindGadget" msgid="776905339015863471">"انتخاب ابزارک‌ها"</string>
     <string name="permdesc_bindGadget" msgid="8261326938599049290">"به برنامه اجازه می‎دهد تا به سیستم اعلام کند کدام ویجت را کدام برنامه می‎تواند استفاده کند. برنامه‎ای که این مجوز را دارد می‎تواند به داده‎های شخصی دیگر برنامه‎ها دسترسی داشته باشد. برای استفاده برنامه‎های عادی نیست."</string>
     <string name="permlab_modifyPhoneState" msgid="8423923777659292228">"اصلاح کردن حالت تلفن"</string>
-    <string name="permdesc_modifyPhoneState" msgid="1029877529007686732">"به برنامه اجازه می‎دهد ویژگیهای دستگاه را کنترل کند. برنامه‎ای که این مجوز را دارد می‎تواند بدون اطلاع شما تعویض شبکه داشته باشد، رادیوی تلفن را روشن یا خاموش کند و کارهایی از این قبیل را انجام دهد."</string>
+    <string name="permdesc_modifyPhoneState" msgid="1029877529007686732">"به برنامه اجازه می‎دهد ویژگی‌های دستگاه را کنترل کند. برنامه‎ای که این مجوز را دارد می‎تواند بدون اطلاع شما تعویض شبکه داشته باشد، رادیوی تلفن را روشن یا خاموش کند و کارهایی از این قبیل را انجام دهد."</string>
     <string name="permlab_readPhoneState" msgid="9178228524507610486">"خواندن وضعیت تلفن و شناسه"</string>
     <string name="permdesc_readPhoneState" msgid="1639212771826125528">"به برنامه اجازه می‌دهد به ویژگی‌های تلفن دستگاه شما دسترسی پیدا کند. این مجوز به برنامه اجازه می‌دهد شماره تلفن و شناسه‌های دستگاه، فعال بودن یک تماس و شماره راه دوری که با یک تماس متصل شده است را مشخص کند."</string>
     <string name="permlab_wakeLock" product="tablet" msgid="1531731435011495015">"ممانعت از به خواب رفتن رایانه لوحی"</string>
@@ -451,20 +459,20 @@
     <string name="permdesc_devicePower" product="tablet" msgid="6689862878984631831">"به برنامه اجازه می‎دهد رایانه لوحی را روشن یا خاموش کند."</string>
     <string name="permdesc_devicePower" product="default" msgid="6037057348463131032">"به برنامه اجازه می‎دهد گوشی را روشن یا خاموش کند."</string>
     <string name="permlab_factoryTest" msgid="3715225492696416187">"اجرا در حالت تست کارخانه"</string>
-    <string name="permdesc_factoryTest" product="tablet" msgid="3952059318359653091">"اجرا به عنوان تست سازنده سطح پایین، امکان دسترسی کامل به سخت افزار رایانه لوحی شما را فراهم می آورد. فقط زمانی که رایانه لوحی در حالت تست سازنده در حال اجراست قابل دسترسی است."</string>
-    <string name="permdesc_factoryTest" product="default" msgid="8136644990319244802">"اجرا به عنوان تست سازنده سطح پایین، امکان دسترسی کامل به سخت افزار تلفن شما را فراهم می آورد. فقط زمانی که تلفن در حالت تست سازنده در حال اجراست قابل دسترسی است."</string>
+    <string name="permdesc_factoryTest" product="tablet" msgid="3952059318359653091">"اجرا به عنوان تست سازنده سطح پایین، امکان دسترسی کامل به سخت افزار رایانه لوحی شما را فراهم می‌آورد. فقط زمانی که رایانه لوحی در حالت تست سازنده در حال اجراست قابل دسترسی است."</string>
+    <string name="permdesc_factoryTest" product="default" msgid="8136644990319244802">"اجرا به عنوان تست سازنده سطح پایین، امکان دسترسی کامل به سخت افزار تلفن شما را فراهم می‌آورد. فقط زمانی که تلفن در حالت تست سازنده در حال اجراست قابل دسترسی است."</string>
     <string name="permlab_setWallpaper" msgid="6627192333373465143">"تنظیم تصویر زمینه"</string>
     <string name="permdesc_setWallpaper" msgid="7373447920977624745">"به برنامه اجازه می‎دهد تا تصویر زمینه سیستم را تنظیم کند."</string>
     <string name="permlab_setWallpaperHints" msgid="3278608165977736538">"تنظیم اندازه تصویر زمینه"</string>
     <string name="permdesc_setWallpaperHints" msgid="8235784384223730091">"به برنامه اجازه می‎دهد تا نکات اندازه تصویر زمینه سیستم را تنظیم کند."</string>
-    <string name="permlab_masterClear" msgid="2315750423139697397">"بازنشانی سیستم به موارد پیش فرض کارخانه"</string>
+    <string name="permlab_masterClear" msgid="2315750423139697397">"بازنشانی سیستم به موارد پیش‌فرض کارخانه"</string>
     <string name="permdesc_masterClear" msgid="3665380492633910226">"به برنامه اجازه می‎دهد تا بطور کامل سیستم را روی تنظیمات کارخانه بازنشانی کند، همه داده‎ها، پیکربندی و برنامه‎های نصب شده را پاک کند."</string>
     <string name="permlab_setTime" msgid="2021614829591775646">"تنظیم ساعت"</string>
     <string name="permdesc_setTime" product="tablet" msgid="1896341438151152881">"به برنامه اجازه می‎دهد تا زمان ساعت رایانه لوحی را تغییر دهد."</string>
     <string name="permdesc_setTime" product="default" msgid="1855702730738020">"به برنامه اجازه می‎دهد تا زمان ساعت تلفن را تغییر دهد."</string>
-    <string name="permlab_setTimeZone" msgid="2945079801013077340">"تنظیم منطقه زمانی"</string>
-    <string name="permdesc_setTimeZone" product="tablet" msgid="1676983712315827645">"به برنامه اجازه می‎دهد تا منطقه زمانی رایانه لوحی را تغییر دهد."</string>
-    <string name="permdesc_setTimeZone" product="default" msgid="4499943488436633398">"به برنامه اجازه می‎دهد تا منطقه زمانی تلفن را تغییر دهد."</string>
+    <string name="permlab_setTimeZone" msgid="2945079801013077340">"تنظیم منطقهٔ زمانی"</string>
+    <string name="permdesc_setTimeZone" product="tablet" msgid="1676983712315827645">"به برنامه اجازه می‎دهد تا منطقهٔ زمانی رایانه لوحی را تغییر دهد."</string>
+    <string name="permdesc_setTimeZone" product="default" msgid="4499943488436633398">"به برنامه اجازه می‎دهد تا منطقهٔ زمانی تلفن را تغییر دهد."</string>
     <string name="permlab_accountManagerService" msgid="4829262349691386986">"عملکرد به عنوان AccountManagerService"</string>
     <string name="permdesc_accountManagerService" msgid="1948455552333615954">"به برنامه اجازه می‎دهد با AccountAuthenticators تماس برقرار کند."</string>
     <string name="permlab_getAccounts" msgid="1086795467760122114">"یافتن حساب‌ها در دستگاه"</string>
@@ -473,10 +481,10 @@
     <string name="permlab_authenticateAccounts" msgid="5265908481172736933">"ایجاد حساب‌ها و تنظیم گذرواژ‌ه‌ها"</string>
     <string name="permdesc_authenticateAccounts" msgid="5472124296908977260">"به برنامه اجازه می‎دهد از امکانات تأیید کننده اعتبار حساب AccountManager از جمله ایجاد حساب و دریافت و تنظیم گذرواژه‎ها استفاده کند."</string>
     <string name="permlab_manageAccounts" msgid="4983126304757177305">"افزودن یا حذف حساب‌ها"</string>
-    <string name="permdesc_manageAccounts" msgid="8698295625488292506">"به برنامه اجازه می‎دهد تا عملکردهایی مانند افزودن و حذف حسابها و حذف گذرواژه‎ها را انجام دهد."</string>
+    <string name="permdesc_manageAccounts" msgid="8698295625488292506">"به برنامه اجازه می‎دهد تا عملکردهایی مانند افزودن و حذف حساب‌ها و حذف گذرواژه‎ها را انجام دهد."</string>
     <string name="permlab_useCredentials" msgid="235481396163877642">"استفاده از حساب‌ها در دستگاه"</string>
     <string name="permdesc_useCredentials" msgid="7984227147403346422">"به برنامه اجازه می‎دهد نشانه‎های تایید اعتبار را درخواست کند."</string>
-    <string name="permlab_accessNetworkState" msgid="4951027964348974773">"مشاهده اتصالات شبکه"</string>
+    <string name="permlab_accessNetworkState" msgid="4951027964348974773">"مشاهدهٔ اتصالات شبکه"</string>
     <string name="permdesc_accessNetworkState" msgid="8318964424675960975">"به برنامه امکان می‌دهد اطلاعات مربوط به اتصالات شبکه مانند شبکه‌های موجود و متصل را مشاهده کند."</string>
     <string name="permlab_createNetworkSockets" msgid="8018758136404323658">"دسترسی کامل به شبکه"</string>
     <string name="permdesc_createNetworkSockets" msgid="3403062187779724185">"به برنامه امکان می‌دهد سوکت‌های شبکه را ایجاد کند و از پروتکل‌های شبکه سفارشی استفاده نماید. مرورگر و سایر برنامه‌ها روشی را برای ارسال داده‌ها به اینترنت ارائه می‌کنند بنابراین این مجوز برای ارسال داده به اینترنت ضروری نیست."</string>
@@ -488,17 +496,17 @@
     <string name="permdesc_changeTetherState" msgid="1524441344412319780">"به برنامه اجازه می‎دهد تا وضعیت اتصال شبکه اتصال داده با سیم را تغییر دهد."</string>
     <string name="permlab_changeBackgroundDataSetting" msgid="1400666012671648741">"تغییر تنظیمات میزان استفاده داده در پس‌زمینه"</string>
     <string name="permdesc_changeBackgroundDataSetting" msgid="5347729578468744379">"به برنامه اجازه می‎دهد تا تنظیم کاربرد داده‎های پس‌زمینه را تغییر دهد."</string>
-    <string name="permlab_accessWifiState" msgid="5202012949247040011">"مشاهده اتصالات Wi-Fi"</string>
+    <string name="permlab_accessWifiState" msgid="5202012949247040011">"مشاهدهٔ اتصالات Wi-Fi"</string>
     <string name="permdesc_accessWifiState" msgid="5002798077387803726">"به برنامه امکان می‌دهد اطلاعات مربوط به شبکه Wi-Fi را مشاهده کند، به عنوان مثال فعال بودن Wi-Fi و نام دستگاه‌های Wi-Fi متصل."</string>
     <string name="permlab_changeWifiState" msgid="6550641188749128035">"اتصال به Wi-Fi و قطع اتصال از آن"</string>
-    <string name="permdesc_changeWifiState" msgid="7137950297386127533">"به برنامه اجازه می‎دهد تا به نقاط دسترسی Wi-Fi وصل شود و ارتباط خود را با آنها قطع کند و تغییراتی را در پیکربندی دستگاه برای شبکه‎های Wi-Fi ایجاد کند."</string>
-    <string name="permlab_changeWifiMulticastState" msgid="1368253871483254784">"دریافت چندگانه Wi-Fi را مجاز می کند"</string>
+    <string name="permdesc_changeWifiState" msgid="7137950297386127533">"به برنامه اجازه می‎دهد تا به نقاط دسترسی Wi-Fi وصل شود و ارتباط خود را با آن‌ها قطع کند و تغییراتی را در پیکربندی دستگاه برای شبکه‎های Wi-Fi ایجاد کند."</string>
+    <string name="permlab_changeWifiMulticastState" msgid="1368253871483254784">"دریافت چندگانه Wi-Fi را مجاز می‌کند"</string>
     <string name="permdesc_changeWifiMulticastState" product="tablet" msgid="7969774021256336548">"به برنامه اجازه می‌دهد به دریافت بسته‌های ارسالی به همه دستگاه‌های موجود در شبکه Wi-Fi با استفاده از آدرس‌های پخش چندگانه و نه فقط به رایانه لوحی شما بپردازند. این از توان مصرف بیشتری نسبت به حالت پخش غیرچندگانه استفاده می‌کند."</string>
     <string name="permdesc_changeWifiMulticastState" product="default" msgid="6851949706025349926">"به برنامه اجازه می‌دهد به دریافت بسته‌های ارسالی به همه دستگاه‌های موجود در شبکه Wi-Fi با استفاده از آدرس‌های پخش چندگانه و نه فقط به تلفن شما بپردازند. این از توان مصرف بیشتری نسبت به حالت پخش غیرچندگانه استفاده می‌کند."</string>
     <string name="permlab_bluetoothAdmin" msgid="6006967373935926659">"دسترسی به تنظیمات بلوتوث"</string>
-    <string name="permdesc_bluetoothAdmin" product="tablet" msgid="6921177471748882137">"به برنامه اجازه می‎دهد تا رایانه لوحی بلوتوث محلی را پیکربندی کرده، دستگاههای راه دور را شناسایی کرده و با آنها جفت شود."</string>
-    <string name="permdesc_bluetoothAdmin" product="default" msgid="8931682159331542137">"به برنامه اجازه می‎دهد تا تلفن بلوتوث محلی را پیکربندی کند و دستگاههای راه دور را پیدا کند و با آنها جفت شود."</string>
-    <string name="permlab_accessWimaxState" msgid="7436749103151096452">"مشاهده اتصالات وایمکس"</string>
+    <string name="permdesc_bluetoothAdmin" product="tablet" msgid="6921177471748882137">"به برنامه اجازه می‎دهد تا رایانه لوحی بلوتوث محلی را پیکربندی کرده، دستگاه‌های راه دور را شناسایی کرده و با آن‌ها جفت شود."</string>
+    <string name="permdesc_bluetoothAdmin" product="default" msgid="8931682159331542137">"به برنامه اجازه می‎دهد تا تلفن بلوتوث محلی را پیکربندی کند و دستگاه‌های راه دور را پیدا کند و با آن‌ها جفت شود."</string>
+    <string name="permlab_accessWimaxState" msgid="7436749103151096452">"مشاهدهٔ اتصالات وایمکس"</string>
     <string name="permdesc_accessWimaxState" msgid="6360102877261978887">"به برنامه امکان می‌دهد فعال بودن وایمکس و اطلاعات مربوط به هر یک از شبکه‌های وایمکس متصل را مشخص کند."</string>
     <string name="permlab_changeWimaxState" msgid="2405042267131496579">"تغییر وضعیت WiMAX"</string>
     <string name="permdesc_changeWimaxState" product="tablet" msgid="3156456504084201805">"به برنامه امکان می‌دهد رایانه لوحی را به شبکه‌های وایمکس متصل کرده یا اتصال آن را از این شبکه‌ها قطع کند."</string>
@@ -524,20 +532,20 @@
     <string name="permdesc_readDictionary" msgid="659614600338904243">"به برنامه اجازه می‎دهد همه کلمه، نام و عباراتی را که کاربر در فرهنگ لغت خود ذخیره کرده است بخواند."</string>
     <string name="permlab_writeDictionary" msgid="2296383164914812772">"نوشتن در فرهنگ لغت تعریف شده از سوی کاربر"</string>
     <string name="permdesc_writeDictionary" msgid="8185385716255065291">"به برنامه اجازه می‎دهد تا کلمات جدید را در فهرست کاربر بنویسد."</string>
-    <string name="permlab_sdcardRead" product="nosdcard" msgid="8235341515605559677">"تست دسترسی به حافظه محافظت شده"</string>
-    <string name="permlab_sdcardRead" product="default" msgid="8235341515605559677">"تست دسترسی به حافظه محافظت شده"</string>
-    <string name="permdesc_sdcardRead" product="nosdcard" msgid="5791957130190763289">"به برنامه اجازه می‌دهد یک مجوز را برای حافظه USB که در دستگاه‌های آتی موجود خواهد بود تست کند."</string>
+    <string name="permlab_sdcardRead" product="nosdcard" msgid="8235341515605559677">"تست کردن دسترسی به حافظهٔ محافظت‌شده"</string>
+    <string name="permlab_sdcardRead" product="default" msgid="8235341515605559677">"تست کردن دسترسی به حافظهٔ محافظت‌شده"</string>
+    <string name="permdesc_sdcardRead" product="nosdcard" msgid="5791957130190763289">"به برنامه اجازه می‌دهد یک مجوز را برای حافظهٔ USB که در دستگاه‌های آتی موجود خواهد بود تست کند."</string>
     <string name="permdesc_sdcardRead" product="default" msgid="5914402684685848828">"به برنامه اجازه می‌دهد یک مجوز را برای کارت SD که در دستگاه‌های آتی موجود خواهد بود تست کند."</string>
-    <string name="permlab_sdcardWrite" product="nosdcard" msgid="8485979062254666748">"اصلاح یا حذف محتویات حافظه USB شما"</string>
+    <string name="permlab_sdcardWrite" product="nosdcard" msgid="8485979062254666748">"اصلاح یا حذف محتویات حافظهٔ USB شما"</string>
     <string name="permlab_sdcardWrite" product="default" msgid="8805693630050458763">"محتوای کارت SD شما را اصلاح کرده یا تغییر دهد"</string>
-    <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6175406299445710888">"به برنامه اجازه می‎دهد تا در حافظه USB بنویسد."</string>
+    <string name="permdesc_sdcardWrite" product="nosdcard" msgid="6175406299445710888">"به برنامه اجازه می‎دهد تا در حافظهٔ USB بنویسد."</string>
     <string name="permdesc_sdcardWrite" product="default" msgid="4337417790936632090">"به برنامه اجازه می‎دهد تا در کارت SD بنویسد."</string>
     <string name="permlab_mediaStorageWrite" product="default" msgid="6859839199706879015">"تغییر/حذف محتواهای حافظه رسانه داخلی"</string>
     <string name="permdesc_mediaStorageWrite" product="default" msgid="8189160597698529185">"به برنامه اجازه می‎دهد تا محتویات حافظه رسانه داخلی را تغییر دهد."</string>
     <string name="permlab_cache_filesystem" msgid="5656487264819669824">"دسترسی به سیستم فایل حافظه پنهان"</string>
     <string name="permdesc_cache_filesystem" msgid="5578967642265550955">"به برنامه اجازه می‎دهد تا سیستم فایل حافظه پنهان را بخواند و بنویسد."</string>
-    <string name="permlab_use_sip" msgid="5986952362795870502">"علامتگذاری/دریافت تماس های اینترنتی"</string>
-    <string name="permdesc_use_sip" msgid="4717632000062674294">"به برنامه اجازه می‎دهد تا از خدمات SIP استفاده کند و تماسهای اینترنتی بگیرد/دریافت کند."</string>
+    <string name="permlab_use_sip" msgid="5986952362795870502">"علامتگذاری/دریافت تماس‌های اینترنتی"</string>
+    <string name="permdesc_use_sip" msgid="4717632000062674294">"به برنامه اجازه می‎دهد تا از خدمات SIP استفاده کند و تماس‌های اینترنتی بگیرد/دریافت کند."</string>
     <string name="permlab_readNetworkUsageHistory" msgid="7862593283611493232">"خواندن سابقه استفاده از شبکه"</string>
     <string name="permdesc_readNetworkUsageHistory" msgid="7689060749819126472">"به برنامه اجازه می‎دهد تا کاربرد شبکه را در طول زمان برای برنامه‎ها و شبکه‎های خاص بخواند."</string>
     <string name="permlab_manageNetworkPolicy" msgid="2562053592339859990">"مدیریت خط مشی شبکه"</string>
@@ -546,18 +554,18 @@
     <string name="permdesc_modifyNetworkAccounting" msgid="5443412866746198123">"به برنامه اجازه می‎دهد تا نحوه محاسبه کاربرد شبکه در برنامه را تغییر دهد. برای استفاده برنامه‎های عادی نیست."</string>
     <string name="policylab_limitPassword" msgid="4497420728857585791">"تنظیم قوانین رمز ورود"</string>
     <string name="policydesc_limitPassword" msgid="3252114203919510394">"طول و نویسه‎های مجاز در گذرواژه‌های بازکردن قفل صفحه را کنترل کنید."</string>
-    <string name="policylab_watchLogin" msgid="914130646942199503">"نمایش تلاش های قفل گشایی صفحه"</string>
-    <string name="policydesc_watchLogin" product="tablet" msgid="3215729294215070072">"تعداد گذرواژه‎های اشتباه تایپ شده را هنگام بازکردن قفل صفحه کنترل میکند، و یا اگر دفعات زیادی گذرواژه اشتباه تایپ شود رایانه لوحی را قفل می‎کند و همه داده‎های رایانه لوحی را پاک می‎کند."</string>
+    <string name="policylab_watchLogin" msgid="914130646942199503">"نمایش تلاش‌های قفل گشایی صفحه"</string>
+    <string name="policydesc_watchLogin" product="tablet" msgid="3215729294215070072">"تعداد گذرواژه‎های اشتباه تایپ شده را هنگام بازکردن قفل صفحه کنترل می‌کند، و یا اگر دفعات زیادی گذرواژه اشتباه تایپ شود رایانه لوحی را قفل می‎کند و همه داده‎های رایانه لوحی را پاک می‎کند."</string>
     <string name="policydesc_watchLogin" product="default" msgid="5712323091846761073">"تعداد گذرواژه‎های نادرست تایپ شده را کنترل می‎کند. هنگام بازکردن قفل صفحه اگر دفعات زیادی گذرواژه نادرست تایپ کرده‎اید، تلفن را قفل کنید یا همه داده‎های تلفن را پاک کنید."</string>
     <string name="policylab_resetPassword" msgid="2620077191242688955">"تغییر رمز ورود قفل گشایی صفحه"</string>
     <string name="policydesc_resetPassword" msgid="605963962301904458">"گذرواژه بازگشایی قفل صفحه را تغییر دهید."</string>
     <string name="policylab_forceLock" msgid="2274085384704248431">"قفل کردن صفحه"</string>
     <string name="policydesc_forceLock" msgid="1141797588403827138">"نحوه و زمان قفل شدن صفحه را کنترل کنید."</string>
-    <string name="policylab_wipeData" msgid="3910545446758639713">"پاک کردن تمام داده ها"</string>
+    <string name="policylab_wipeData" msgid="3910545446758639713">"پاک کردن تمام داده‌ها"</string>
     <string name="policydesc_wipeData" product="tablet" msgid="4306184096067756876">"با انجام بازنشانی به داده‌های کارخانه، داده‌های رایانه لوحی بدون هشدار پاک می‌شود."</string>
     <string name="policydesc_wipeData" product="default" msgid="5096895604574188391">"با انجام بازنشانی به داده‌های کارخانه، داده‌های تلفن بدون هشدار پاک می‌شود."</string>
     <string name="policylab_setGlobalProxy" msgid="2784828293747791446">"تنظیم پروکسی جهانی دستگاه"</string>
-    <string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"پروکسی جهانی دستگاه مورد نظر را جهت استفاده هنگام فعال بودن خط مشی تنظیم کنید. فقط اولین سرپرست دستگاه پروکسی جهانی مفید را تنظیم می کند."</string>
+    <string name="policydesc_setGlobalProxy" msgid="6387497466660154931">"پروکسی جهانی دستگاه مورد نظر را جهت استفاده هنگام فعال بودن خط مشی تنظیم کنید. فقط اولین سرپرست دستگاه پروکسی جهانی مفید را تنظیم می‌کند."</string>
     <string name="policylab_expirePassword" msgid="885279151847254056">"تنظیم زمان انقضای رمز ورود قفل صفحه"</string>
     <string name="policydesc_expirePassword" msgid="1729725226314691591">"کنترل کنید چند وقت یکبار باید گذرواژه صفحه قفل عوض شود."</string>
     <string name="policylab_encryptedStorage" msgid="8901326199909132915">"تنظیم رمزگذاری حافظه"</string>
@@ -568,7 +576,7 @@
     <item msgid="8901098336658710359">"خانه"</item>
     <item msgid="869923650527136615">"تلفن همراه"</item>
     <item msgid="7897544654242874543">"محل کار"</item>
-    <item msgid="1103601433382158155">"نمابر محل كار"</item>
+    <item msgid="1103601433382158155">"نمابر محل کار"</item>
     <item msgid="1735177144948329370">"نمابر خانه"</item>
     <item msgid="603878674477207394">"پیجر"</item>
     <item msgid="1650824275177931637">"سایر موارد"</item>
@@ -611,7 +619,7 @@
     <string name="phoneTypeHome" msgid="2570923463033985887">"خانه"</string>
     <string name="phoneTypeMobile" msgid="6501463557754751037">"تلفن همراه"</string>
     <string name="phoneTypeWork" msgid="8863939667059911633">"محل کار"</string>
-    <string name="phoneTypeFaxWork" msgid="3517792160008890912">"نمابر محل كار"</string>
+    <string name="phoneTypeFaxWork" msgid="3517792160008890912">"نمابر محل کار"</string>
     <string name="phoneTypeFaxHome" msgid="2067265972322971467">"نمابر خانه"</string>
     <string name="phoneTypePager" msgid="7582359955394921732">"پیجر"</string>
     <string name="phoneTypeOther" msgid="1544425847868765990">"سایر موارد"</string>
@@ -620,7 +628,7 @@
     <string name="phoneTypeCompanyMain" msgid="540434356461478916">"شماره اصلی شرکت"</string>
     <string name="phoneTypeIsdn" msgid="8022453193171370337">"ISDN"</string>
     <string name="phoneTypeMain" msgid="6766137010628326916">"اصلی"</string>
-    <string name="phoneTypeOtherFax" msgid="8587657145072446565">"سایر شماره های نمابر"</string>
+    <string name="phoneTypeOtherFax" msgid="8587657145072446565">"سایر شماره‌های نمابر"</string>
     <string name="phoneTypeRadio" msgid="4093738079908667513">"رادیو"</string>
     <string name="phoneTypeTelex" msgid="3367879952476250512">"تلکس"</string>
     <string name="phoneTypeTtyTdd" msgid="8606514378585000044">"TTY TDD"</string>
@@ -714,7 +722,7 @@
     <string name="lockscreen_transport_pause_description" msgid="7659088786780128001">"دکمه مکث"</string>
     <string name="lockscreen_transport_play_description" msgid="5888422938351019426">"دکمه پخش"</string>
     <string name="lockscreen_transport_stop_description" msgid="4562318378766987601">"دکمه توقف"</string>
-    <string name="emergency_calls_only" msgid="6733978304386365407">"فقط تماس های اضطراری"</string>
+    <string name="emergency_calls_only" msgid="6733978304386365407">"فقط تماس‌های اضطراری"</string>
     <string name="lockscreen_network_locked_message" msgid="143389224986028501">"شبکه قفل شد"</string>
     <string name="lockscreen_sim_puk_locked_message" msgid="7441797339976230">"سیم کارت با PUK قفل شده است."</string>
     <string name="lockscreen_sim_puk_locked_instructions" msgid="8127916255245181063">"لطفاً به راهنمای کاربر مراجعه کرده یا با مرکز پشتیبانی از مشتریان تماس بگیرید."</string>
@@ -725,10 +733,10 @@
     <string name="lockscreen_too_many_failed_pin_attempts_dialog_message" msgid="6216672706545696955">"پین را<xliff:g id="NUMBER_0">%d</xliff:g>  بار اشتباه تایپ کرده‎اید. "\n\n"پس از <xliff:g id="NUMBER_1">%d</xliff:g> ثانیه دوباره امتحان کنید."</string>
     <string name="lockscreen_failed_attempts_almost_glogin" product="tablet" msgid="9191611984625460820">"شما الگوی بازگشایی قفل خود را <xliff:g id="NUMBER_0">%d</xliff:g> بار اشتباه کشیده‎اید. بعد از <xliff:g id="NUMBER_1">%d</xliff:g> تلاش ناموفق، از شما خواسته می‎شود که برای بازگشایی قفل رایانه لوحی خود به Google وارد شوید."\n\n" لطفاً پس از <xliff:g id="NUMBER_2">%d</xliff:g> ثانیه دوباره امتحان کنید."</string>
     <string name="lockscreen_failed_attempts_almost_glogin" product="default" msgid="2590227559763762751">"شما الگوی بازگشایی قفل خود را <xliff:g id="NUMBER_0">%d</xliff:g> بار اشتباه کشیده اید. پس از <xliff:g id="NUMBER_1">%d</xliff:g> تلاش ناموفق دیگر از شما خواسته می‎شود که برای بازگشایی قفل گوشی خود به برنامه Google وارد شوید."\n\n" لطفاً پس از <xliff:g id="NUMBER_2">%d</xliff:g> ثانیه دوباره امتحان کنید."</string>
-    <string name="lockscreen_failed_attempts_almost_at_wipe" product="tablet" msgid="6128106399745755604">"شما به اشتباه <xliff:g id="NUMBER_0">%d</xliff:g> بار اقدام به باز کردن قفل رایانه لوحی کرده‌اید. پس از <xliff:g id="NUMBER_1">%d</xliff:g> تلاش ناموفق دیگر، رایانه لوحی به پیش فرض کارخانه بازنشانی می‌شود و تمام داده‌های کاربر از دست خواهد رفت."</string>
-    <string name="lockscreen_failed_attempts_almost_at_wipe" product="default" msgid="8603565142156826565">"شما به اشتباه <xliff:g id="NUMBER_0">%d</xliff:g> بار اقدام به باز کردن قفل تلفن کرده‌اید. پس از<xliff:g id="NUMBER_1">%d</xliff:g> تلاش ناموفق دیگر، تلفن به پیش فرض کارخانه بازنشانی می‌شود و تمام داده‌های کاربر از دست خواهد رفت."</string>
-    <string name="lockscreen_failed_attempts_now_wiping" product="tablet" msgid="280873516493934365">"شما به اشتباه اقدام به باز کردن قفل <xliff:g id="NUMBER">%d</xliff:g> رایانه لوحی کرده‌اید. رایانه لوحی در حال حاضر به پیش فرض کارخانه بازنشانی می‌شود."</string>
-    <string name="lockscreen_failed_attempts_now_wiping" product="default" msgid="3025504721764922246">"شما به اشتباه <xliff:g id="NUMBER">%d</xliff:g> بار اقدام به باز کردن قفل تلفن کرده‌اید. این تلفن در حال حاضر به پیش فرض کارخانه بازنشانی می‌شود."</string>
+    <string name="lockscreen_failed_attempts_almost_at_wipe" product="tablet" msgid="6128106399745755604">"شما به اشتباه <xliff:g id="NUMBER_0">%d</xliff:g> بار اقدام به باز کردن قفل رایانه لوحی کرده‌اید. پس از <xliff:g id="NUMBER_1">%d</xliff:g> تلاش ناموفق دیگر، رایانه لوحی به پیش‌فرض کارخانه بازنشانی می‌شود و تمام داده‌های کاربر از دست خواهد رفت."</string>
+    <string name="lockscreen_failed_attempts_almost_at_wipe" product="default" msgid="8603565142156826565">"شما به اشتباه <xliff:g id="NUMBER_0">%d</xliff:g> بار اقدام به باز کردن قفل تلفن کرده‌اید. پس از<xliff:g id="NUMBER_1">%d</xliff:g> تلاش ناموفق دیگر، تلفن به پیش‌فرض کارخانه بازنشانی می‌شود و تمام داده‌های کاربر از دست خواهد رفت."</string>
+    <string name="lockscreen_failed_attempts_now_wiping" product="tablet" msgid="280873516493934365">"شما به اشتباه اقدام به باز کردن قفل <xliff:g id="NUMBER">%d</xliff:g> رایانه لوحی کرده‌اید. رایانه لوحی در حال حاضر به پیش‌فرض کارخانه بازنشانی می‌شود."</string>
+    <string name="lockscreen_failed_attempts_now_wiping" product="default" msgid="3025504721764922246">"شما به اشتباه <xliff:g id="NUMBER">%d</xliff:g> بار اقدام به باز کردن قفل تلفن کرده‌اید. این تلفن در حال حاضر به پیش‌فرض کارخانه بازنشانی می‌شود."</string>
     <string name="lockscreen_too_many_failed_attempts_countdown" msgid="6251480343394389665">"در <xliff:g id="NUMBER">%d</xliff:g> ثانیه دوباره امتحان کنید."</string>
     <string name="lockscreen_forgot_pattern_button_text" msgid="2626999449610695930">"الگو را فراموش کرده اید؟"</string>
     <string name="lockscreen_glogin_forgot_pattern" msgid="2588521501166032747">"بازگشایی قفل حساب"</string>
@@ -757,7 +765,7 @@
     <string name="hour_ampm" msgid="4584338083529355982">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
     <string name="hour_cap_ampm" msgid="2083465992940444366">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
     <string name="factorytest_failed" msgid="5410270329114212041">"تست کارخانه انجام نشد"</string>
-    <string name="factorytest_not_system" msgid="4435201656767276723">"عملکرد FACTORY_TEST تنها برای بسته های نصب شده در /system/app پشتیبانی می شود."</string>
+    <string name="factorytest_not_system" msgid="4435201656767276723">"عملکرد FACTORY_TEST تنها برای بسته‌های نصب شده در /system/app پشتیبانی می‌شود."</string>
     <string name="factorytest_no_action" msgid="872991874799998561">"بسته ای یافت نشد که عملکرد FACTORY_TEST را ارائه کند."</string>
     <string name="factorytest_reboot" msgid="6320168203050791643">"راه اندازی مجدد"</string>
     <string name="js_dialog_title" msgid="1987483977834603872">"صفحه در \"<xliff:g id="TITLE">%s</xliff:g>\" می‎گوید:"</string>
@@ -784,7 +792,7 @@
     <string name="autofill_area" msgid="3547409050889952423">"منطقه"</string>
     <string name="autofill_emirate" msgid="2893880978835698818">"امارات"</string>
     <string name="permlab_readHistoryBookmarks" msgid="3775265775405106983">"خواندن سابقه و نشانک‌های وب شما"</string>
-    <string name="permdesc_readHistoryBookmarks" msgid="8462378226600439658">"به برنامه اجازه می‌دهد سابقه نشانی‌های اینترنتی را که مرورگر بازدید کرده است و همه نشانک‌های مرورگر را بخواند. توجه: این مجوز توسط مرورگرهای شخص ثالث یا سایر برنامه‌های دارای قابلیت مرور وب قابل اجرا نمی‌باشد."</string>
+    <string name="permdesc_readHistoryBookmarks" msgid="8462378226600439658">"به برنامه اجازه می‌دهد سابقه نشانی‌های اینترنتی را که مرورگر بازدید کرده است و همه نشانک‌های مرورگر را بخواند. توجه: این مجوز توسط مرورگرهای شخص ثالث یا سایر برنامه‌های دارای قابلیت مرور وب قابل اجرا نیست."</string>
     <string name="permlab_writeHistoryBookmarks" msgid="3714785165273314490">"نوشتن نشانک‌های وب و سابقه"</string>
     <string name="permdesc_writeHistoryBookmarks" product="tablet" msgid="6825527469145760922">"به برنامه اجازه می‌دهد سابقه مرورگر یا نشانک‌های ذخیره شده در رایانه لوحی شما را اصلاح کند. این ویژگی ممکن است به برنامه اجازه دهد داده‌های مرورگر را حذف یا اصلاح کند. توجه: این مجوز ممکن است توسط مرورگرهای شخص ثالث یا سایر برنامه‌های دارای قابلیت مرور وب قابل اجرا نباشد."</string>
     <string name="permdesc_writeHistoryBookmarks" product="default" msgid="8497389531014185509">"به برنامه اجازه می‌دهد سابقه مرورگر یا نشانک‌های ذخیره شده در تلفن شما را اصلاح کند. این ویژگی ممکن است به برنامه اجازه دهد داده‌های مرورگر را حذف یا اصلاح کند. توجه: این مجوز ممکن است توسط مرورگرهای شخص ثالث یا سایر برنامه‌های دارای قابلیت مرور وب قابل اجرا نباشد."</string>
@@ -793,7 +801,7 @@
     <string name="permlab_addVoicemail" msgid="5525660026090959044">"افزودن پست صوتی"</string>
     <string name="permdesc_addVoicemail" msgid="6604508651428252437">"به برنامه اجازه می‌دهد تا پیام‌ها را به صندوق دریافت پست صوتی شما اضافه کند."</string>
     <string name="permlab_writeGeolocationPermissions" msgid="5962224158955273932">"تغییر مجوزهای مکان جغرافیایی مرورگر"</string>
-    <string name="permdesc_writeGeolocationPermissions" msgid="1083743234522638747">"به برنامه اجازه می‎دهد تا مجوزهای جغرافیایی مرورگر را تغییر دهد. برنامه‎های مخرب می‎توانند از آن استفاده کنند تا اطلاعات موقعیت مکانی را به سایتهای وب کتابخانه بفرستند."</string>
+    <string name="permdesc_writeGeolocationPermissions" msgid="1083743234522638747">"به برنامه اجازه می‎دهد تا مجوزهای جغرافیایی مرورگر را تغییر دهد. برنامه‎های مخرب می‎توانند از آن استفاده کنند تا اطلاعات موقعیت مکانی را به سایت‌های وب کتابخانه بفرستند."</string>
     <string name="permlab_packageVerificationAgent" msgid="5568139100645829117">"تأیید بسته‌ها"</string>
     <string name="permdesc_packageVerificationAgent" msgid="8437590190990843381">"به برنامه اجازه می‌دهد قابل نصب بودن بسته را تأیید کند."</string>
     <string name="permlab_bindPackageVerifier" msgid="4187786793360326654">"اتصال به یک تأیید کننده بسته"</string>
@@ -804,7 +812,7 @@
     <string name="permdesc_accessContentProvidersExternally" msgid="4544346486697853685">"به دارنده اجازه می‌دهد تا از خارج برنامه به ارائه‌دهندگان محتوا دسترسی داشته باشد. هرگز برای برنامه‌های معمولی به آن نیازی نیست."</string>
     <string name="permlab_updateLock" msgid="3527558366616680889">"ترغیب به انجام ندادن به‌روزرسانی‌های خودکار دستگاه"</string>
     <string name="permdesc_updateLock" msgid="1655625832166778492">"به دارنده اجازه می‌دهد اطلاعاتی در مورد زمان مناسب برای یک راه‌اندازی مجدد غیرتعاملی جهت ارتقای دستگاه را به سیستم ارائه دهد."</string>
-    <string name="save_password_message" msgid="767344687139195790">"می خواهید مرورگر این رمز ورود را به خاطر داشته باشد؟"</string>
+    <string name="save_password_message" msgid="767344687139195790">"می‌خواهید مرورگر این رمز ورود را به خاطر داشته باشد؟"</string>
     <string name="save_password_notnow" msgid="6389675316706699758">"اکنون خیر"</string>
     <string name="save_password_remember" msgid="6491879678996749466">"به خاطر سپردن"</string>
     <string name="save_password_never" msgid="8274330296785855105">"هرگز"</string>
@@ -824,18 +832,18 @@
     <string name="enable_explore_by_touch_warning_title" msgid="7460694070309730149">"فعال کردن «کاوش با لمس»؟"</string>
     <string name="enable_explore_by_touch_warning_message" product="tablet" msgid="8655887539089910577">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> می‌خواهد «کاوش با لمس» را فعال کند. وقتی «کاوش با لمس» فعال است، می‌توانید توضیحاتی را برای آنچه که زیر انگشت شما است مشاهده کرده یا بشنوید یا برای استفاده از رایانه لوحی از حرکات اشاره استفاده کنید."</string>
     <string name="enable_explore_by_touch_warning_message" product="default" msgid="2708199672852373195">"<xliff:g id="ACCESSIBILITY_SERVICE_NAME">%1$s</xliff:g> می‌خواهد «کاوش با لمس» را فعال کند. وقتی «کاوش با لمس» فعال است، می‌توانید توضیحاتی را برای آنچه که زیر انگشت شما است مشاهده کرده یا بشنوید یا برای استفاده از تلفن خود از حرکات اشاره استفاده کنید."</string>
-    <string name="oneMonthDurationPast" msgid="7396384508953779925">"1 ماه قبل"</string>
-    <string name="beforeOneMonthDurationPast" msgid="909134546836499826">"قبل از 1 ماه گذشته"</string>
+    <string name="oneMonthDurationPast" msgid="7396384508953779925">"۱ ماه قبل"</string>
+    <string name="beforeOneMonthDurationPast" msgid="909134546836499826">"قبل از ۱ ماه گذشته"</string>
   <plurals name="num_seconds_ago">
-    <item quantity="one" msgid="4869870056547896011">"1 ثانیه قبل"</item>
+    <item quantity="one" msgid="4869870056547896011">"۱ ثانیه قبل"</item>
     <item quantity="other" msgid="3903706804349556379">"<xliff:g id="COUNT">%d</xliff:g> ثانیه قبل"</item>
   </plurals>
   <plurals name="num_minutes_ago">
-    <item quantity="one" msgid="3306787433088810191">"1 دقیقه قبل"</item>
+    <item quantity="one" msgid="3306787433088810191">"۱ دقیقه قبل"</item>
     <item quantity="other" msgid="2176942008915455116">"<xliff:g id="COUNT">%d</xliff:g> دقیقه قبل"</item>
   </plurals>
   <plurals name="num_hours_ago">
-    <item quantity="one" msgid="9150797944610821849">"1 ساعت قبل"</item>
+    <item quantity="one" msgid="9150797944610821849">"۱ ساعت قبل"</item>
     <item quantity="other" msgid="2467273239587587569">"<xliff:g id="COUNT">%d</xliff:g> ساعت قبل"</item>
   </plurals>
   <plurals name="last_num_days">
@@ -848,15 +856,15 @@
     <item quantity="other" msgid="2479586466153314633">"<xliff:g id="COUNT">%d</xliff:g> روز قبل"</item>
   </plurals>
   <plurals name="in_num_seconds">
-    <item quantity="one" msgid="2729745560954905102">"در 1 ثانیه"</item>
+    <item quantity="one" msgid="2729745560954905102">"در ۱ ثانیه"</item>
     <item quantity="other" msgid="1241926116443974687">"در <xliff:g id="COUNT">%d</xliff:g> ثانیه"</item>
   </plurals>
   <plurals name="in_num_minutes">
-    <item quantity="one" msgid="8793095251325200395">"در 1 دقیقه"</item>
+    <item quantity="one" msgid="8793095251325200395">"در ۱ دقیقه"</item>
     <item quantity="other" msgid="3330713936399448749">"در <xliff:g id="COUNT">%d</xliff:g> دقیقه"</item>
   </plurals>
   <plurals name="in_num_hours">
-    <item quantity="one" msgid="7164353342477769999">"در 1 ساعت"</item>
+    <item quantity="one" msgid="7164353342477769999">"در ۱ ساعت"</item>
     <item quantity="other" msgid="547290677353727389">"در <xliff:g id="COUNT">%d</xliff:g> ساعت"</item>
   </plurals>
   <plurals name="in_num_days">
@@ -864,15 +872,15 @@
     <item quantity="other" msgid="5109449375100953247">"در <xliff:g id="COUNT">%d</xliff:g> روز"</item>
   </plurals>
   <plurals name="abbrev_num_seconds_ago">
-    <item quantity="one" msgid="1849036840200069118">"1 ثانیه قبل"</item>
+    <item quantity="one" msgid="1849036840200069118">"۱ ثانیه قبل"</item>
     <item quantity="other" msgid="3699169366650930415">"<xliff:g id="COUNT">%d</xliff:g> ثانیه قبل"</item>
   </plurals>
   <plurals name="abbrev_num_minutes_ago">
-    <item quantity="one" msgid="6361490147113871545">"1 دقیقه قبل"</item>
+    <item quantity="one" msgid="6361490147113871545">"۱ دقیقه قبل"</item>
     <item quantity="other" msgid="851164968597150710">"<xliff:g id="COUNT">%d</xliff:g> دقیقه قبل"</item>
   </plurals>
   <plurals name="abbrev_num_hours_ago">
-    <item quantity="one" msgid="4796212039724722116">"1 ساعت قبل"</item>
+    <item quantity="one" msgid="4796212039724722116">"۱ ساعت قبل"</item>
     <item quantity="other" msgid="6889970745748538901">"<xliff:g id="COUNT">%d</xliff:g> ساعت قبل"</item>
   </plurals>
   <plurals name="abbrev_num_days_ago">
@@ -880,15 +888,15 @@
     <item quantity="other" msgid="3453342639616481191">"<xliff:g id="COUNT">%d</xliff:g> روز قبل"</item>
   </plurals>
   <plurals name="abbrev_in_num_seconds">
-    <item quantity="one" msgid="5842225370795066299">"در 1 ثانیه"</item>
+    <item quantity="one" msgid="5842225370795066299">"در ۱ ثانیه"</item>
     <item quantity="other" msgid="5495880108825805108">"در <xliff:g id="COUNT">%d</xliff:g> ثانیه"</item>
   </plurals>
   <plurals name="abbrev_in_num_minutes">
-    <item quantity="one" msgid="562786149928284878">"در 1 دقیقه"</item>
+    <item quantity="one" msgid="562786149928284878">"در ۱ دقیقه"</item>
     <item quantity="other" msgid="4216113292706568726">"در <xliff:g id="COUNT">%d</xliff:g> دقیقه"</item>
   </plurals>
   <plurals name="abbrev_in_num_hours">
-    <item quantity="one" msgid="3274708118124045246">"در 1 ساعت"</item>
+    <item quantity="one" msgid="3274708118124045246">"در ۱ ساعت"</item>
     <item quantity="other" msgid="3705373766798013406">"در <xliff:g id="COUNT">%d</xliff:g> ساعت"</item>
   </plurals>
   <plurals name="abbrev_in_num_days">
@@ -910,9 +918,9 @@
     <string name="weeks" msgid="6509623834583944518">"هفته"</string>
     <string name="year" msgid="4001118221013892076">"سال"</string>
     <string name="years" msgid="6881577717993213522">"سال"</string>
-    <string name="VideoView_error_title" msgid="3534509135438353077">"مشکل در ویدیو"</string>
-    <string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"متأسفیم، این ویدیو برای پخش جریانی با این دستگاه معتبر نیست."</string>
-    <string name="VideoView_error_text_unknown" msgid="3450439155187810085">"پخش این ویدیو ممکن نیست."</string>
+    <string name="VideoView_error_title" msgid="3534509135438353077">"مشکل در ویدئو"</string>
+    <string name="VideoView_error_text_invalid_progressive_playback" msgid="3186670335938670444">"متأسفیم، این ویدئو برای پخش جریانی با این دستگاه معتبر نیست."</string>
+    <string name="VideoView_error_text_unknown" msgid="3450439155187810085">"پخش این ویدئو ممکن نیست."</string>
     <string name="VideoView_error_button" msgid="2822238215100679592">"تأیید"</string>
     <string name="relative_time" msgid="1818557177829411417">"<xliff:g id="DATE">%1$s</xliff:g>، <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="noon" msgid="7245353528818587908">"ظهر"</string>
@@ -941,12 +949,12 @@
     <string name="yes" msgid="5362982303337969312">"تأیید"</string>
     <string name="no" msgid="5141531044935541497">"لغو"</string>
     <string name="dialog_alert_title" msgid="2049658708609043103">"توجه"</string>
-    <string name="loading" msgid="7933681260296021180">"درحال بارگیری..."</string>
+    <string name="loading" msgid="7933681260296021180">"در حال بارگیری..."</string>
     <string name="capital_on" msgid="1544682755514494298">"روشن"</string>
     <string name="capital_off" msgid="6815870386972805832">"خاموش"</string>
     <string name="whichApplication" msgid="4533185947064773386">"تکمیل عملکرد با استفاده از"</string>
-    <string name="alwaysUse" msgid="4583018368000610438">"استفاده به صورت پیش فرض برای این عملکرد."</string>
-    <string name="clearDefaultHintMsg" msgid="3252584689512077257">"پیش فرض را در تنظیمات سیستم&gt; برنامه‎ها&gt; مورد دانلود شده پاک کنید."</string>
+    <string name="alwaysUse" msgid="4583018368000610438">"استفاده به صورت پیش‌فرض برای این عملکرد."</string>
+    <string name="clearDefaultHintMsg" msgid="3252584689512077257">"پیش‌فرض را در تنظیمات سیستم&gt; برنامه‎ها&gt; مورد دانلود شده پاک کنید."</string>
     <string name="chooseActivity" msgid="7486876147751803333">"انتخاب عملکرد"</string>
     <string name="chooseUsbActivity" msgid="6894748416073583509">"انتخاب برنامه برای دستگاه USB"</string>
     <string name="noApplications" msgid="2991814273936504689">"هیچ برنامه‌ای نمی‎تواند این کار را انجام دهد."</string>
@@ -997,18 +1005,18 @@
     <string name="volume_icon_description_incall" msgid="8890073218154543397">"میزان صدای تماس"</string>
     <string name="volume_icon_description_media" msgid="4217311719665194215">"میزان صدای رسانه"</string>
     <string name="volume_icon_description_notification" msgid="7044986546477282274">"میزان صدای اعلان"</string>
-    <string name="ringtone_default" msgid="3789758980357696936">"آهنگ زنگ پیش فرض"</string>
-    <string name="ringtone_default_with_actual" msgid="8129563480895990372">"آهنگ زنگ پیش فرض (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
+    <string name="ringtone_default" msgid="3789758980357696936">"آهنگ زنگ پیش‌فرض"</string>
+    <string name="ringtone_default_with_actual" msgid="8129563480895990372">"آهنگ زنگ پیش‌فرض (<xliff:g id="ACTUAL_RINGTONE">%1$s</xliff:g>)"</string>
     <string name="ringtone_silent" msgid="4440324407807468713">"ساکت"</string>
-    <string name="ringtone_picker_title" msgid="3515143939175119094">"آهنگ های زنگ"</string>
+    <string name="ringtone_picker_title" msgid="3515143939175119094">"آهنگ‌های زنگ"</string>
     <string name="ringtone_unknown" msgid="5477919988701784788">"آهنگ زنگ ناشناس"</string>
   <plurals name="wifi_available">
     <item quantity="one" msgid="6654123987418168693">"شبکه Wi-Fi موجود است"</item>
-    <item quantity="other" msgid="4192424489168397386">"شبکه های Wi-Fi موجود هستند"</item>
+    <item quantity="other" msgid="4192424489168397386">"شبکه‌های Wi-Fi موجود هستند"</item>
   </plurals>
   <plurals name="wifi_available_detailed">
     <item quantity="one" msgid="1634101450343277345">"شبکه Wi-Fi موجود را باز کنید"</item>
-    <item quantity="other" msgid="7915895323644292768">"شبکه های Wi-Fi موجود را باز کنید"</item>
+    <item quantity="other" msgid="7915895323644292768">"شبکه‌های Wi-Fi موجود را باز کنید"</item>
   </plurals>
     <string name="wifi_available_sign_in" msgid="4029489716605255386">"ورود به شبکه Wi-Fi"</string>
     <!-- no translation found for wifi_available_sign_in_detailed (6797764740339907572) -->
@@ -1050,7 +1058,7 @@
     <string name="date_picker_dialog_title" msgid="5879450659453782278">"تاریخ تنظیم"</string>
     <string name="date_time_set" msgid="5777075614321087758">"تنظیم"</string>
     <string name="date_time_done" msgid="2507683751759308828">"انجام شد"</string>
-    <string name="default_permission_group" msgid="2690160991405646128">"پیش فرض"</string>
+    <string name="default_permission_group" msgid="2690160991405646128">"پیش‌فرض"</string>
     <string name="no_permissions" msgid="7283357728219338112">"مجوزی لازم نیست"</string>
     <string name="perms_hide" msgid="7283915391320676226"><b>"پنهان کردن"</b></string>
     <string name="perms_show_all" msgid="2671791163933091180"><b>"نمایش همه"</b></string>
@@ -1058,22 +1066,22 @@
     <string name="perms_description_app" msgid="5139836143293299417">"ارائه شده توسط <xliff:g id="APP_NAME">%1$s</xliff:g> ."</string>
     <string name="usb_storage_activity_title" msgid="4465055157209648641">"حافظه انبوه USB"</string>
     <string name="usb_storage_title" msgid="5901459041398751495">"USB متصل شد"</string>
-    <string name="usb_storage_message" product="nosdcard" msgid="3308538094316477839">"شما از طریق USB به رایانه خود متصل شده‎اید. اگر می‎خواهید فایل‎ها را بین رایانه خود و حافظه USB در Android کپی کنید، دکمه زیر را لمس کنید."</string>
+    <string name="usb_storage_message" product="nosdcard" msgid="3308538094316477839">"شما از طریق USB به رایانه خود متصل شده‎اید. اگر می‎خواهید فایل‎ها را بین رایانه خود و حافظهٔ USB در Android کپی کنید، دکمه زیر را لمس کنید."</string>
     <string name="usb_storage_message" product="default" msgid="805351000446037811">"شما از طریق USB به رایانه خود متصل شده‎اید. اگر می‎خواهید فایل‎ها را بین رایانه خود و کارت SD در Android کپی کنید، دکمه زیر را لمس کنید."</string>
-    <string name="usb_storage_button_mount" msgid="1052259930369508235">"روشن کردن دستگاه ذخیره سازی USB"</string>
-    <string name="usb_storage_error_message" product="nosdcard" msgid="3017045217365540658">"هنگام استفاده از حافظه USB برای حافظه انبوه USB مشکلی بوجود آمد."</string>
+    <string name="usb_storage_button_mount" msgid="1052259930369508235">"روشن کردن دستگاه ذخیره‌سازی USB"</string>
+    <string name="usb_storage_error_message" product="nosdcard" msgid="3017045217365540658">"هنگام استفاده از حافظهٔ USB برای حافظه انبوه USB مشکلی بوجود آمد."</string>
     <string name="usb_storage_error_message" product="default" msgid="2876018512716970313">"هنگام استفاده از کارت SD برای حافظه ذخیره انبوه USB مشکلی بوجود آمد."</string>
     <string name="usb_storage_notification_title" msgid="8175892554757216525">"USB متصل شد"</string>
-    <string name="usb_storage_notification_message" msgid="939822783828183763">"برای کپی کردن فایلها از/به رایانه خود لمس کنید."</string>
-    <string name="usb_storage_stop_notification_title" msgid="2336058396663516017">"خاموش کردن دستگاه ذخیره سازی USB"</string>
-    <string name="usb_storage_stop_notification_message" msgid="1656852098555623822">"برای غیرفعال کردن حافظه USB، لمس کنید."</string>
-    <string name="usb_storage_stop_title" msgid="660129851708775853">"دستگاه ذخیره سازی USB در حال استفاده است"</string>
-    <string name="usb_storage_stop_message" product="nosdcard" msgid="4264025280777219521">"قبل از غیرفعال کردن حافظه USB، حافظه USB مربوط به Android را در رایانه خود لغو نصب کنید (\"خارج کنید\")."</string>
-    <string name="usb_storage_stop_message" product="default" msgid="8043969782460613114">"قبل از غیرفعال کردن حافظه USB، کارت SD مربوط به Android را در رایانه لغو نصب کنید (\"خارج کنید\")."</string>
-    <string name="usb_storage_stop_button_mount" msgid="7060218034900696029">"خاموش کردن دستگاه ذخیره سازی USB"</string>
-    <string name="usb_storage_stop_error_message" msgid="1970374898263063836">"هنگام غیرفعال کردن حافظه USB مشکلی بوجود آمد. بررسی کنید میزبان USB را لغو نصب کرده باشید، سپس دوباره امتحان کنید."</string>
-    <string name="dlg_confirm_kill_storage_users_title" msgid="963039033470478697">"روشن کردن دستگاه ذخیره سازی USB"</string>
-    <string name="dlg_confirm_kill_storage_users_text" msgid="5100428757107469454">"در صورت فعال کردن حافظه USB، برخی از برنامه‎هایی که از آنها استفاده می‎کنید متوقف می‎شوند و تا زمانی که حافظه USB را غیرفعال نکنید امکان استفاده از آنها وجود نخواهد داشت."</string>
+    <string name="usb_storage_notification_message" msgid="939822783828183763">"برای کپی کردن فایل‌ها از/به رایانه خود لمس کنید."</string>
+    <string name="usb_storage_stop_notification_title" msgid="2336058396663516017">"خاموش کردن دستگاه ذخیره‌سازی USB"</string>
+    <string name="usb_storage_stop_notification_message" msgid="1656852098555623822">"برای غیرفعال کردن حافظهٔ USB، لمس کنید."</string>
+    <string name="usb_storage_stop_title" msgid="660129851708775853">"دستگاه ذخیره‌سازی USB در حال استفاده است"</string>
+    <string name="usb_storage_stop_message" product="nosdcard" msgid="4264025280777219521">"قبل از غیرفعال کردن حافظهٔ USB، حافظهٔ USB مربوط به Android را در رایانه خود لغو نصب کنید (\"خارج کنید\")."</string>
+    <string name="usb_storage_stop_message" product="default" msgid="8043969782460613114">"قبل از غیرفعال کردن حافظهٔ USB، کارت SD مربوط به Android را در رایانه لغو نصب کنید (\"خارج کنید\")."</string>
+    <string name="usb_storage_stop_button_mount" msgid="7060218034900696029">"خاموش کردن دستگاه ذخیره‌سازی USB"</string>
+    <string name="usb_storage_stop_error_message" msgid="1970374898263063836">"هنگام غیرفعال کردن حافظهٔ USB مشکلی بوجود آمد. بررسی کنید میزبان USB را لغو نصب کرده باشید، سپس دوباره امتحان کنید."</string>
+    <string name="dlg_confirm_kill_storage_users_title" msgid="963039033470478697">"روشن کردن دستگاه ذخیره‌سازی USB"</string>
+    <string name="dlg_confirm_kill_storage_users_text" msgid="5100428757107469454">"در صورت فعال کردن حافظهٔ USB، برخی از برنامه‎هایی که از آن‌ها استفاده می‎کنید متوقف می‎شوند و تا زمانی که حافظهٔ USB را غیرفعال نکنید امکان استفاده از آن‌ها وجود نخواهد داشت."</string>
     <string name="dlg_error_title" msgid="7323658469626514207">"راه‌اندازی USB ناموفق بود."</string>
     <string name="dlg_ok" msgid="7376953167039865701">"تأیید"</string>
     <string name="usb_mtp_notification_title" msgid="3699913097391550394">"متصل شده به عنوان دستگاه رسانه ای"</string>
@@ -1081,9 +1089,9 @@
     <string name="usb_cd_installer_notification_title" msgid="6774712827892090754">"متصل شده به عنوان نصب کننده"</string>
     <string name="usb_accessory_notification_title" msgid="7848236974087653666">"به یک وسیله جانبی USB وصل شده است"</string>
     <string name="usb_notification_message" msgid="2290859399983720271">"برای سایر گزینه‌های USB لمس کنید."</string>
-    <string name="extmedia_format_title" product="nosdcard" msgid="9020092196061007262">"حافظه USB فرمت شود؟"</string>
+    <string name="extmedia_format_title" product="nosdcard" msgid="9020092196061007262">"حافظهٔ USB فرمت شود؟"</string>
     <string name="extmedia_format_title" product="default" msgid="3648415921526526069">"کارت SD فرمت شود؟"</string>
-    <string name="extmedia_format_message" product="nosdcard" msgid="3934016853425761078">"همه فایلهای ذخیره شده در حافظه USB پاک خواهد شد. این عمل را نمی‎توان برگرداند!"</string>
+    <string name="extmedia_format_message" product="nosdcard" msgid="3934016853425761078">"همه فایل‌های ذخیره شده در حافظهٔ USB پاک خواهد شد. این عمل را نمی‎توان برگرداند!"</string>
     <string name="extmedia_format_message" product="default" msgid="14131895027543830">"تمام اطلاعات روی کارت شما از بین می‎رود."</string>
     <string name="extmedia_format_button_format" msgid="4131064560127478695">"قالب"</string>
     <string name="adb_active_notification_title" msgid="6729044778949189918">"اتصال رفع عیب USB"</string>
@@ -1097,34 +1105,34 @@
     <string name="fast_scroll_alphabet" msgid="5433275485499039199">" ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
     <string name="fast_scroll_numeric_alphabet" msgid="4030170524595123610">" 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"</string>
     <string name="candidates_style" msgid="4333913089637062257"><u>"داوطلبین"</u></string>
-    <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"آماده سازی حافظه USB"</string>
+    <string name="ext_media_checking_notification_title" product="nosdcard" msgid="3449816005351468560">"آماده سازی حافظهٔ USB"</string>
     <string name="ext_media_checking_notification_title" product="default" msgid="5457603418970994050">"آماده کردن کارت SD"</string>
     <string name="ext_media_checking_notification_message" msgid="8287319882926737053">"بررسی خطاها."</string>
-    <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"حافظه USB خالی"</string>
+    <string name="ext_media_nofs_notification_title" product="nosdcard" msgid="7788040745686229307">"حافظهٔ USB خالی"</string>
     <string name="ext_media_nofs_notification_title" product="default" msgid="780477838241212997">"کارت SD خالی"</string>
-    <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"حافظه USB خالی است یا دارای سیستم فایل پشتیبانی نشده است."</string>
+    <string name="ext_media_nofs_notification_message" product="nosdcard" msgid="7840121067427269500">"حافظهٔ USB خالی است یا دارای سیستم فایل پشتیبانی نشده است."</string>
     <string name="ext_media_nofs_notification_message" product="default" msgid="8641065641786923604">"کارت SD خالی است یا دارای سیستم فایل پشتیبانی نشده است."</string>
-    <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"حافظه USB خراب شده"</string>
+    <string name="ext_media_unmountable_notification_title" product="nosdcard" msgid="2090046769532713563">"حافظهٔ USB خراب شده"</string>
     <string name="ext_media_unmountable_notification_title" product="default" msgid="6410723906019100189">"کارت SD آسیب دیده"</string>
-    <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"حافظه USB خراب است. سعی کنید آنرا دوباره فرمت کنید."</string>
+    <string name="ext_media_unmountable_notification_message" product="nosdcard" msgid="1795917578395333280">"حافظهٔ USB خراب است. سعی کنید آنرا دوباره فرمت کنید."</string>
     <string name="ext_media_unmountable_notification_message" product="default" msgid="1753898567525568253">"کارت SD خراب است. سعی کنید آنرا دوباره فرمت کنید."</string>
-    <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"حافظه USB به صورت غیر منتظره جدا شد"</string>
+    <string name="ext_media_badremoval_notification_title" product="nosdcard" msgid="1661683031330951073">"حافظهٔ USB به صورت غیر منتظره جدا شد"</string>
     <string name="ext_media_badremoval_notification_title" product="default" msgid="6872152882604407837">"کارت SD به صورت غیر منتظره ای جدا شد"</string>
-    <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"اتصال حافظه USB را قبل از بیرون آوردن قطع کنید تا سبب از بین رفتن داده ها نشود."</string>
-    <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"کارت SD را قبل از بیرون آوردن جدا کنید تا سبب از بین رفتن داده ها نشود."</string>
-    <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"حافظه USB را می توانید با ایمنی جدا کنید"</string>
-    <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"کارت SD را می توان با امنیت کامل جدا کرد"</string>
-    <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"شما می توانید حافظه USB را با اطمینان جدا کنید."</string>
-    <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"کارت SD را می توانید با امنیت کامل خارج کنید."</string>
-    <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"جدا کردن حافظه USB"</string>
+    <string name="ext_media_badremoval_notification_message" product="nosdcard" msgid="4329848819865594241">"اتصال حافظهٔ USB را قبل از بیرون آوردن قطع کنید تا سبب از بین رفتن داده‌ها نشود."</string>
+    <string name="ext_media_badremoval_notification_message" product="default" msgid="7260183293747448241">"کارت SD را قبل از بیرون آوردن جدا کنید تا سبب از بین رفتن داده‌ها نشود."</string>
+    <string name="ext_media_safe_unmount_notification_title" product="nosdcard" msgid="3967973893270360230">"حافظهٔ USB را می‌توانید با ایمنی جدا کنید"</string>
+    <string name="ext_media_safe_unmount_notification_title" product="default" msgid="6729801130790616200">"کارت SD را می‌توان با امنیت کامل جدا کرد"</string>
+    <string name="ext_media_safe_unmount_notification_message" product="nosdcard" msgid="6142195361606493530">"شما می‌توانید حافظهٔ USB را با اطمینان جدا کنید."</string>
+    <string name="ext_media_safe_unmount_notification_message" product="default" msgid="568841278138377604">"کارت SD را می‌توانید با امنیت کامل خارج کنید."</string>
+    <string name="ext_media_nomedia_notification_title" product="nosdcard" msgid="4486377230140227651">"جدا کردن حافظهٔ USB"</string>
     <string name="ext_media_nomedia_notification_title" product="default" msgid="8902518030404381318">"کارت SD حذف شده"</string>
-    <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"حافظه USB جدا شد. یک رسانه جدید متصل کنید."</string>
+    <string name="ext_media_nomedia_notification_message" product="nosdcard" msgid="6921126162580574143">"حافظهٔ USB جدا شد. یک رسانه جدید متصل کنید."</string>
     <string name="ext_media_nomedia_notification_message" product="default" msgid="3870120652983659641">"کارت SD جدا شد. یک کارت جدید وارد کنید."</string>
     <string name="activity_list_empty" msgid="1675388330786841066">"فعالیتی مطابق با این مورد یافت نشد."</string>
-    <string name="permlab_pkgUsageStats" msgid="8787352074326748892">"به روزرسانی آمار مربوط به استفاده مؤلفه"</string>
+    <string name="permlab_pkgUsageStats" msgid="8787352074326748892">"به‌روزرسانی آمار مربوط به استفاده مؤلفه"</string>
     <string name="permdesc_pkgUsageStats" msgid="1106612424254277630">"به برنامه اجازه می‎دهد آمار جمع‎آوری شده کاربرد قطعه را تغییر دهد. برای استفاده برنامه‎های عادی نیست."</string>
     <string name="permlab_copyProtectedData" msgid="4341036311211406692">"کپی کردن محتوا"</string>
-    <string name="permdesc_copyProtectedData" msgid="4390697124288317831">"به برنامه اجازه می‎دهد تا سرویس پیش فرض را فراخوانی کند و محتوا را کپی کند. برای استفاده برنامه‎های عادی مورد نیاز نیست."</string>
+    <string name="permdesc_copyProtectedData" msgid="4390697124288317831">"به برنامه اجازه می‎دهد تا سرویس پیش‌فرض را فراخوانی کند و محتوا را کپی کند. برای استفاده برنامه‎های عادی مورد نیاز نیست."</string>
     <string name="permlab_route_media_output" msgid="1642024455750414694">"تعیین مسیر خروجی رسانه"</string>
     <string name="permdesc_route_media_output" msgid="4932818749547244346">"به یک برنامه اجازه می‌دهد خروجی رسانه را به دستگاه‌های خارجی دیگر تعیین مسیر کند."</string>
     <string name="tutorial_double_tap_to_zoom_message_short" msgid="4070433208160063538">"دوبار لمس کنید تا بزرگنمایی کنترل شود"</string>
@@ -1139,7 +1147,7 @@
     <string name="dial_number_using" msgid="5789176425167573586">"شماره گیری "\n"با استفاده از <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="create_contact_using" msgid="4947405226788104538">"ایجاد مخاطب"\n"با استفاده از <xliff:g id="NUMBER">%s</xliff:g>"</string>
     <string name="grant_credentials_permission_message_header" msgid="2106103817937859662">"یک یا چند برنامه زیر برای دسترسی به حساب شما در زمان حال و آینده درخواست مجوز کرده‌اند."</string>
-    <string name="grant_credentials_permission_message_footer" msgid="3125211343379376561">"می خواهید به این درخواست اجازه دهید؟"</string>
+    <string name="grant_credentials_permission_message_footer" msgid="3125211343379376561">"می‌خواهید به این درخواست اجازه دهید؟"</string>
     <string name="grant_permissions_header_text" msgid="6874497408201826708">"درخواست دسترسی"</string>
     <string name="allow" msgid="7225948811296386551">"مجاز"</string>
     <string name="deny" msgid="2081879885755434506">"رد کردن"</string>
@@ -1165,9 +1173,9 @@
     <string name="back_button_label" msgid="2300470004503343439">"برگشت"</string>
     <string name="next_button_label" msgid="1080555104677992408">"بعدی"</string>
     <string name="skip_button_label" msgid="1275362299471631819">"پرش"</string>
-    <string name="throttle_warning_notification_title" msgid="4890894267454867276">"استفاده زیاد از داده های تلفن همراه"</string>
+    <string name="throttle_warning_notification_title" msgid="4890894267454867276">"استفاده زیاد از داده‌های تلفن همراه"</string>
     <string name="throttle_warning_notification_message" msgid="3340822228599337743">"برای کسب اطلاعات بیشتر درباره استفاده از داده‌های تلفن همراه، لمس کنید."</string>
-    <string name="throttled_notification_title" msgid="6269541897729781332">"داده های تلفن همراه از مقدار مجاز بیشتر است"</string>
+    <string name="throttled_notification_title" msgid="6269541897729781332">"داده‌های تلفن همراه از مقدار مجاز بیشتر است"</string>
     <string name="throttled_notification_message" msgid="5443457321354907181">"برای کسب اطلاعات بیشتر درباره استفاده از داده‌های تلفن همراه، لمس کنید."</string>
     <string name="no_matches" msgid="8129421908915840737">"مورد منطبقی موجود نیست"</string>
     <string name="find_on_page" msgid="1946799233822820384">"یافتن در صفحه"</string>
@@ -1176,17 +1184,17 @@
     <item quantity="other" msgid="4641872797067609177">"<xliff:g id="INDEX">%d</xliff:g> از <xliff:g id="TOTAL">%d</xliff:g>"</item>
   </plurals>
     <string name="action_mode_done" msgid="7217581640461922289">"انجام شد"</string>
-    <string name="progress_unmounting" product="nosdcard" msgid="3923810448507612746">"درحال لغو نصب حافظه USB..."</string>
-    <string name="progress_unmounting" product="default" msgid="1327894998409537190">"درحال لغو نصب کارت SD..."</string>
-    <string name="progress_erasing" product="nosdcard" msgid="4521573321524340058">"در حال پاک کردن حافظه USB..."</string>
+    <string name="progress_unmounting" product="nosdcard" msgid="3923810448507612746">"در حال لغو نصب حافظهٔ USB..."</string>
+    <string name="progress_unmounting" product="default" msgid="1327894998409537190">"در حال لغو نصب کارت SD..."</string>
+    <string name="progress_erasing" product="nosdcard" msgid="4521573321524340058">"در حال پاک کردن حافظهٔ USB..."</string>
     <string name="progress_erasing" product="default" msgid="6596988875507043042">"در حال پاک کردن کارت SD..."</string>
     <string name="format_error" product="nosdcard" msgid="6299769563624776948">"پاک کردن محل ذخیره  USB ممکن نیست."</string>
     <string name="format_error" product="default" msgid="7315248696644510935">"پاک کردن کارت SD ممکن نیست."</string>
     <string name="media_bad_removal" msgid="7960864061016603281">"کارت SD قبل از قطع اتصال از دستگاه خارج شد."</string>
-    <string name="media_checking" product="nosdcard" msgid="418188720009569693">"حافظه USB اکنون در حال بررسی شدن است."</string>
+    <string name="media_checking" product="nosdcard" msgid="418188720009569693">"حافظهٔ USB اکنون در حال بررسی شدن است."</string>
     <string name="media_checking" product="default" msgid="7334762503904827481">"کارت SD در حال حاضر در حال بررسی است."</string>
     <string name="media_removed" msgid="7001526905057952097">"کارت SD حذف شده است."</string>
-    <string name="media_shared" product="nosdcard" msgid="5830814349250834225">"حافظه در حال حاضر توسط رایانه دیگری استفاده می شود."</string>
+    <string name="media_shared" product="nosdcard" msgid="5830814349250834225">"حافظه در حال حاضر توسط رایانه دیگری استفاده می‌شود."</string>
     <string name="media_shared" product="default" msgid="5706130568133540435">"کارت SD در حال حاضر توسط یک رایانه در حال استفاده است."</string>
     <string name="media_unknown_state" msgid="729192782197290385">"رسانه خارجی در حالت ناشناس است."</string>
     <string name="share" msgid="1778686618230011964">"اشتراک گذاری"</string>
@@ -1247,15 +1255,15 @@
     <string name="action_bar_home_description" msgid="5293600496601490216">"رفتن به صفحهٔ اصلی"</string>
     <string name="action_bar_up_description" msgid="2237496562952152589">"حرکت به بالا"</string>
     <string name="action_menu_overflow_description" msgid="2295659037509008453">"سایر گزینه‌ها"</string>
-    <string name="storage_internal" msgid="4891916833657929263">"حافظه داخلی"</string>
+    <string name="storage_internal" msgid="4891916833657929263">"حافظهٔ داخلی"</string>
     <string name="storage_sd_card" msgid="3282948861378286745">"کارت SD"</string>
-    <string name="storage_usb" msgid="3017954059538517278">"حافظه USB"</string>
+    <string name="storage_usb" msgid="3017954059538517278">"حافظهٔ USB"</string>
     <string name="extract_edit_menu_button" msgid="8940478730496610137">"ویرایش"</string>
     <string name="data_usage_warning_title" msgid="1955638862122232342">"هشدار میزان استفاده از داده"</string>
     <string name="data_usage_warning_body" msgid="2814673551471969954">"برای مشاهده کاربرد و تنظیمات لمس کنید."</string>
-    <string name="data_usage_3g_limit_title" msgid="7093334419518706686">"داده های 2G-3G غیرفعال شد"</string>
+    <string name="data_usage_3g_limit_title" msgid="7093334419518706686">"داده‌های 2G-3G غیرفعال شد"</string>
     <string name="data_usage_4g_limit_title" msgid="7636489436819470761">"داده 4G غیر فعال شده است"</string>
-    <string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"داده های تلفن همراه غیرفعال شد"</string>
+    <string name="data_usage_mobile_limit_title" msgid="7869402519391631884">"داده‌های تلفن همراه غیرفعال شد"</string>
     <string name="data_usage_wifi_limit_title" msgid="8992154736441284865">"داده‌های Wi-Fi غیرفعال شد"</string>
     <string name="data_usage_limit_body" msgid="3317964706973601386">"برای فعال کردن لمس کنید."</string>
     <string name="data_usage_3g_limit_snoozed_title" msgid="7026739121138005231">"اطلاعات 2G-3G بیش از حد مجاز است"</string>
@@ -1275,7 +1283,7 @@
     <string name="validity_period" msgid="8818886137545983110">"اعتبار:"</string>
     <string name="issued_on" msgid="5895017404361397232">"صادر شده در:"</string>
     <string name="expires_on" msgid="3676242949915959821">"تاریخ انقضا:"</string>
-    <string name="serial_number" msgid="758814067660862493">"شماره سریال:"</string>
+    <string name="serial_number" msgid="758814067660862493">"شمارهٔ سریال:"</string>
     <string name="fingerprints" msgid="4516019619850763049">"اثر انگشت:"</string>
     <string name="sha256_fingerprint" msgid="4391271286477279263">"اثر انگشت SHA-256:"</string>
     <string name="sha1_fingerprint" msgid="7930330235269404581">"اثر انگشت SHA-1"</string>
@@ -1284,11 +1292,11 @@
     <string name="share_action_provider_share_with" msgid="5247684435979149216">"اشتراک‌گذاری با"</string>
     <string name="status_bar_device_locked" msgid="3092703448690669768">"دستگاه قفل است."</string>
     <string name="list_delimeter" msgid="3975117572185494152">"، "</string>
-    <string name="sending" msgid="3245653681008218030">"درحال ارسال..."</string>
+    <string name="sending" msgid="3245653681008218030">"در حال ارسال..."</string>
     <string name="launchBrowserDefault" msgid="2057951947297614725">"مرورگر راه‌اندازی شود؟"</string>
     <string name="SetupCallDefault" msgid="5834948469253758575">"تماس را می‌پذیرید؟"</string>
     <string name="activity_resolver_use_always" msgid="8017770747801494933">"همیشه"</string>
-    <string name="activity_resolver_use_once" msgid="2404644797149173758">"فقط یک بار"</string>
+    <string name="activity_resolver_use_once" msgid="2404644797149173758">"فقط این بار"</string>
     <string name="default_audio_route_name" product="tablet" msgid="4617053898167127471">"رایانه لوحی"</string>
     <string name="default_audio_route_name" product="default" msgid="4239291273420140123">"تلفن"</string>
     <string name="default_audio_route_name_headphones" msgid="8119971843803439110">"هدفون‌ها"</string>
diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml
index cabed61..b0bec56 100644
--- a/core/res/res/values-fi/strings.xml
+++ b/core/res/res/values-fi/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Antaa sovelluksen noutaa järjestelmän sisäisen tilan. Haitalliset sovellukset voivat noutaa paljon yksityisiä ja suojattuja tietoja, joita niiden ei pitäisi tarvita normaalisti."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"nouda näytön sisältö"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Antaa sovelluksen noutaa aktiivisen ikkunan sisällön. Haitalliset sovellukset voivat noutaa koko ikkunan sisällön ja tarkastella sen kaikkea tekstiä lukuun ottamatta salasanoja."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"sulje puhelin osittain"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Asettaa toimintojen hallinnan sulkeutumistilaan. Ei sulje puhelinta kokonaan."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"estä sovellusten vaihto"</string>
diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml
index 27032e8..b5bc390 100644
--- a/core/res/res/values-fr/strings.xml
+++ b/core/res/res/values-fr/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Permet à l\'application de récupérer l\'état interne du système. Des applications malveillantes peuvent récupérer de nombreuses informations confidentielles et sécurisées dont elles ne devraient pas avoir besoin normalement."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"récupérer le contenu de l\'écran"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Permet à l\'application de récupérer le contenu de la fenêtre active. Des applications malveillantes peuvent exploiter cette fonctionnalité pour récupérer et lire la totalité du contenu de la fenêtre, à l\'exception des mots de passe."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"arrêt partiel"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Place le gestionnaire d\'activités en état d\'arrêt. N\'effectue pas un arrêt complet."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"empêcher les changements d\'applications"</string>
diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml
index d145791..2f45b0b 100644
--- a/core/res/res/values-hi/strings.xml
+++ b/core/res/res/values-hi/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"एप्‍लिकेशन को सिस्‍टम की आंतरिक स्‍थिति पुनर्प्राप्त करने देता है. दुर्भावनापूर्ण एप्‍लिकेशन विभिन्‍न प्रकार की निजी और सुरक्षा जानकारी प्राप्त कर सकते हैं जिनकी उन्‍हें सामान्‍यत: आवश्‍यकता नहीं होती."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"स्‍क्रीन सामग्री पुनर्प्राप्त करें"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"एप्‍लिकेशन को सक्रिय विंडो की सामग्री पुनर्प्राप्त करने देता है. दुर्भावनापूर्ण एप्‍लिकेशन विंडो की संपूर्ण सामग्री प्राप्त कर सकते हैं और पासवर्ड को छोड़कर इसके सभी पाठ जांच सकते हैं."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"आंशिक शटडाउन"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"गतिविधि प्रबंधक को शटडाउन स्‍थिति में रखता है. पूर्ण शटडाउन निष्‍पादित नहीं करता है."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"एप्‍लिकेशन स्‍विच करने से रोकता है"</string>
diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml
index be187ac..ba24521 100644
--- a/core/res/res/values-hr/strings.xml
+++ b/core/res/res/values-hr/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Omogućuje aplikaciji dohvaćanje unutarnjeg stanja sustava. Zlonamjerne aplikacije mogu dohvatiti razne privatne i sigurnosne podatke koje im inače nikada ne bi trebale biti potrebne."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"dohvaćanje sadržaja zaslona"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Omogućuje aplikaciji dohvaćanje sadržaja aktivnog prozora. Zlonamjerne aplikacije mogu dohvatiti sav sadržaj prozora i pregledati sav njegov tekst osim zaporki."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"djelomično isključivanje"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Postavlja upravitelja za aktivnost u stanje mirovanja. Ne isključuje ga u potpunosti."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"sprečavanje promjene aplikacije"</string>
diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml
index 97ee94a..834bca3 100644
--- a/core/res/res/values-hu/strings.xml
+++ b/core/res/res/values-hu/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Lehetővé teszi az alkalmazás számára, hogy lekérje a rendszer belső állapotát. A rosszindulatú programok lekérhetnek számos olyan privát és biztonságos adatot, amelyekre normál esetben soha nincs szükségük."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"a képernyő tartalmának lekérése"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Lehetővé teszi az alkalmazás számára az aktív ablak tartalmának letöltését. A rosszindulatú alkalmazások letölthetik az ablak teljes tartalmát, és a jelszavak kivételével az összes szöveget megvizsgálhatják."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"részleges rendszerleállítás"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Leállítás állapotba helyezi a tevékenységkezelőt. Nem hajtja végre a teljes leállítást."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"alkalmazásváltás megakadályozása"</string>
diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml
index dc01b63..a88fdb4 100644
--- a/core/res/res/values-in/strings.xml
+++ b/core/res/res/values-in/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Mengizinkan apl mengambil keadaan internal sistem. Apl berbahaya dapat mengambil berbagai informasi pribadi dan aman yang seharusnya tidak diperlukan."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"ambil konten layar"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Mengizinkan apl mengambil konten jendela aktif. Apl berbahaya dapat mengambil seluruh konten jendela dan memeriksa semua teksnya kecuali sandi."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"penghentian sebagian"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Letakkan pengelola aktivitas dalam kondisi mati. Tidak melakukan penonaktifan penuh."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"cegah pergantian aplikasi"</string>
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index f84ad68..52c69a9 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Consente all\'applicazione di recuperare lo stato interno del sistema. Le applicazioni dannose potrebbero recuperare una vasta gamma di informazioni private e protette di cui normalmente non dovrebbero mai avere bisogno."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"recupero dei contenuti della schermata"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Consente all\'applicazione di recuperare i contenuti della finestra attiva. Le applicazioni dannose potrebbero recuperare l\'intero contenuto della finestra ed esaminare tutto il testo, tranne le password."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"chiusura parziale"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Mette il gestore delle attività in uno stato di chiusura. Non esegue una chiusura completa."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"impedire commutazione applicazione"</string>
diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml
index 81cd1e4..18db794 100644
--- a/core/res/res/values-iw/strings.xml
+++ b/core/res/res/values-iw/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"מאפשר ליישום לאחזר את המצב הפנימי של המערכת. יישומים זדוניים עלולים לאחזר מגוון רחב של מידע אישי ונתוני אבטחה, שעל פי רוב לעולם לא יזדקקו להם."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"אחזר את תוכן המסך"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"מאפשר ליישום לאחזר את התוכן של החלון הפעיל. יישומים זדוניים עלולים לאחזר את תוכן החלון כולו ולבחון את כל הטקסט שבו, מלבד סיסמאות."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"כיבוי חלקי"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"מעביר את מנהל הפעילויות למצב כיבוי. לא מבצע כיבוי מלא."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"מנע החלפת יישומים"</string>
diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml
index 4f7b5cc..238a9a8 100644
--- a/core/res/res/values-ja/strings.xml
+++ b/core/res/res/values-ja/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"システムの内部状態の取得をアプリに許可します。この許可を悪意のあるアプリに利用されると、通常必要ないはずの各種の非公開/機密情報が取得される恐れがあります。"</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"画面のコンテンツの取得"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"作業中のウィンドウの内容を取得することをアプリに許可します。この許可を悪意のあるアプリに利用されると、ウィンドウの内容全体が取得されてパスワード以外のテキストがすべてチェックされる恐れがあります。"</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"部分的にシャットダウンする"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"アクティビティマネージャをシャットダウン状態にします。完全なシャットダウンは実行しません。"</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"アプリケーションの切り替えを禁止する"</string>
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index bb6cf01..ec85c41 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"앱이 시스템의 내부 상태를 검색할 수 있도록 허용합니다. 이 경우 악성 앱이 이 기능을 이용하여 일반적으로 필요하지 않은 다양한 개인정보와 보안정보를 검색할 수 있습니다."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"화면 콘텐츠 검색"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"앱이 활성 창의 콘텐츠를 검색할 수 있도록 허용합니다. 이 경우 악성 앱이 전체 창의 콘텐츠를 검색하여 비밀번호를 제외한 모든 텍스트를 살펴볼 수 있습니다."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"부분 종료"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"작업 관리자를 종료 상태로 설정합니다. 전체 종료를 수행하지는 않습니다."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"애플리케이션 전환 방지"</string>
diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml
index 0922667..158adb7 100644
--- a/core/res/res/values-lt/strings.xml
+++ b/core/res/res/values-lt/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Leidžiama programai nuskaityti vidinę sistemos būseną. Kenkėjiškos programos gali nuskaityti daug įvairios privačios ir saugios informacijos, kurios paprastai joms niekada neturėtų reikėti."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"nuskaityti ekrano turinį"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Leidžiama programai nuskaityti aktyvaus lango turinį. Kenkėjiškos programos gali bandyti išgauti viso lango turinį ir tirti visą jo tekstą, išskyrus slaptažodžius."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"dalinis išjungimas"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Veiklos tvarkyklę perjungia į išsijungimo būseną. Neišjungia visiškai."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"neleisti perjungti programų"</string>
diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml
index 75ec5ba..178c202 100644
--- a/core/res/res/values-lv/strings.xml
+++ b/core/res/res/values-lv/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Ļauj lietotnei izgūt sistēmas iekšējo statusu. Ļaunprātīgas lietotnes var izgūt dažādu privātu un drošu informāciju, kas parasti tām nav nepieciešama."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"Ekrāna satura iegūšana"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Ļauj lietotnei izgūt aktīva loga saturu. Ļaunprātīgas lietotnes var izgūt visu loga saturu un pārbaudīt visu tā tekstu, izņemot paroles."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"daļēja izslēgšana"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Liek darbību pārvaldniekam pāriet izslēgšanas stāvoklī. Neveic pilnīgu izslēgšanu."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"novērst lietojumprogrammu pārslēgšanu"</string>
diff --git a/core/res/res/values-ms/strings.xml b/core/res/res/values-ms/strings.xml
index 73d6b54..e997e75 100644
--- a/core/res/res/values-ms/strings.xml
+++ b/core/res/res/values-ms/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Membenarkan apl untuk mendapatkan semula keadaan dalaman sistem. Apl hasad boleh mendapatkan pelbagai maklumat peribadi dan selamat yang biasanya tidak ia perlukan."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"dapatkan semula kandungan skrin"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Membenarkan apl untuk mendapatkan kandungan tetingkap aktif. Apl hasad boleh mengambil keseluruhan kandungan tetingkap dan memeriksa semua teks kecuali kata laluan."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"penutupan separa"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Meletakkan pengurus aktiviti dalam keadaan tutup. Tidak melaksanakan penutupan lengkap."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"halang pertukaran apl"</string>
diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml
index de803b0..a205ba8 100644
--- a/core/res/res/values-nb/strings.xml
+++ b/core/res/res/values-nb/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Lar appen hente ut informasjon om systemets indre tilstand. Ondsinnede apper kan hente et bredt spekter av privat og sikker informasjon som de vanligvis aldri burde ha behov for."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"hent av skjerminnhold"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Lar appen hente ut innholdet i det aktive vinduet. Ondsinnede apper kan hente ut hele vindusinnholdet og undersøke all teksten, med unntak av passord."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"delvis avslutning"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Lar applikasjonen sette aktivitetshåndtereren i avslutningstilstand. Slår ikke systemet helt av."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"forhindre applikasjonsbytte"</string>
diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml
index 55b7612..b82f76e 100644
--- a/core/res/res/values-nl/strings.xml
+++ b/core/res/res/values-nl/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Hiermee kan de app de interne systeemstatus ophalen. Schadelijke apps kunnen een grote hoeveelheid persoonlijke en beveiligde informatie ophalen die ze normaal gesproken nooit nodig hebben."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"scherminhoud ophalen"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Hiermee kan de app de inhoud van het actieve venster ophalen. Schadelijke apps kunnen de volledige inhoud van het venster ophalen en alle tekst bekijken, behalve wachtwoorden."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"gedeeltelijke uitschakeling"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Hiermee wordt activiteitenbeheer uitgeschakeld. Er wordt geen volledige uitschakeling uitgevoerd."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"schakelen tussen apps voorkomen"</string>
diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml
index 392a44c..194c014 100644
--- a/core/res/res/values-pl/strings.xml
+++ b/core/res/res/values-pl/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Pozwala aplikacji na pobieranie wewnętrznego stanu systemu. Złośliwe aplikacje mogą pobrać szereg prywatnych i zabezpieczonych informacji, które normalnie nie są im potrzebne."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"pobieranie zawartości ekranu"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Pozwala aplikacji na pobieranie zawartości aktywnego okna. Złośliwe aplikacje mogą pobrać całą zawartość okna i przeanalizować znajdujący się w nim tekst z wyjątkiem haseł."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"częściowe wyłączenie"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Przełącza menedżera aktywności w stan wyłączenia. Nie wykonuje pełnego wyłączenia."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"zapobieganie przełączaniu aplikacji"</string>
diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml
index 0135d9f..50163ba 100644
--- a/core/res/res/values-pt-rPT/strings.xml
+++ b/core/res/res/values-pt-rPT/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Permite que a aplicação obtenha o estado interno do sistema. As aplicações maliciosas podem obter uma ampla variedade de dados privados e seguros de que, normalmente, nunca devem necessitar."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"obter o conteúdo do ecrã"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Permite que a aplicação obtenha o conteúdo da janela ativa. As aplicações maliciosas podem obter todo o conteúdo da janela e examinar todo o texto, exceto as palavras-passe."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"encerramento parcial"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Coloca o gestor de actividade num estado de encerramento. Não executa um encerramento completo."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"impedir trocas de aplicações"</string>
diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml
index 93d4f85..97d743f 100644
--- a/core/res/res/values-pt/strings.xml
+++ b/core/res/res/values-pt/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Permite que o aplicativo recupere o estado interno do sistema. Aplicativos maliciosos podem obter uma grande variedade de informações privadas e seguras que eles normalmente não precisariam."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"recuperar conteúdo da tela"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Permite que o aplicativo recupere o conteúdo da janela ativa. Aplicativos maliciosos podem recuperar o conteúdo da janela inteira e examinar todo o texto, exceto as senhas."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"desligamento parcial"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Coloca o gerenciador de atividades em um estado de desligamento. Não executa o desligamento completo."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"evitar trocas de aplicativo"</string>
diff --git a/core/res/res/values-rm/strings.xml b/core/res/res/values-rm/strings.xml
index 1262f13..a9eafdb 100644
--- a/core/res/res/values-rm/strings.xml
+++ b/core/res/res/values-rm/strings.xml
@@ -339,6 +339,14 @@
     <skip />
     <!-- no translation found for permdesc_retrieve_window_content (3193269069469700265) -->
     <skip />
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"serrar parzialmain"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Metta l\'administratur dad activitads en in stadi da pausa. El na vegn betg serrà dal tut."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"evitar il midar tranter applicaziuns"</string>
diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml
index d69cb2e..cb5842e 100644
--- a/core/res/res/values-ro/strings.xml
+++ b/core/res/res/values-ro/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Permite aplicaţiei să preia starea internă a sistemului. Aplicaţiile rău intenţionate pot să preia o gamă variată de informaţii private şi securizate, de care în mod normal nu ar avea nevoie niciodată."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"preia conţinutul de pe ecran"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Permite aplicaţiei să preia conţinutul ferestrei active. Aplicaţiile rău intenţionate pot să preia întregul conţinut al ferestrei şi să examineze integral textul acesteia, cu excepţia parolelor."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"închidere parţială"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Plasează Managerul de activităţi într-o stare de închidere. Nu efectuează o închidere completă."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"împiedicare comutare între aplicaţii"</string>
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index 72b11f3..3d63128 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Приложение сможет получать данные о внутреннем состоянии системы. Вредоносные программы смогут получать личную и защищенную информацию, к которой у них не должно быть доступа."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"получать доступ к содержанию экрана"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Приложение сможет получать контент активного окна. Вредоносные программы смогут перехватывать такой контент и анализировать любой текст, кроме паролей."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"частичное завершение работы"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Завершает работу диспетчера активности. Не выполняет полное завершение работы."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"запретить переключение приложений"</string>
diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml
index dccefa2..63e270f 100644
--- a/core/res/res/values-sk/strings.xml
+++ b/core/res/res/values-sk/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Umožňuje aplikácii načítať interný stav systému. Škodlivé aplikácie môžu načítať široký rozsah súkromných a zabezpečených informácií, ktoré by obvykle nemali nikdy potrebovať."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"načítanie obsahu obrazovky"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Umožňuje aplikácii načítať obsah aktívneho okna. Škodlivé aplikácie môžu získať celý obsah okna a preskúmať celý jeho text okrem hesiel."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"Čiastočné vypnutie"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Uvedie správcu činností do vypnutého stavu. Úplné vypnutie však nenastane."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"zabrániť prepínaniu aplikácií"</string>
diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml
index dce4e52..af58202 100644
--- a/core/res/res/values-sl/strings.xml
+++ b/core/res/res/values-sl/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Programu omogoča prejemanje notranjega stanja sistema. Zlonamerni programi lahko na ta način dobijo različne zasebne in varnostne podatke, ki jih običajno ne potrebujejo."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"prenos vsebine zaslona"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Programu omogoča dostop do vsebine aktivnega okna. Zlonamerni programi lahko dobijo vso vsebino okna in pregledajo njeno besedilo razen gesel."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"delna zaustavitev"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Upravitelja dejavnosti preklopi v stanje za zaustavitev. Ne izvede celotne zaustavitve."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"preprečevanje preklopa programov"</string>
diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml
index 5ef0bcf..4fa16e8 100644
--- a/core/res/res/values-sr/strings.xml
+++ b/core/res/res/values-sr/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Дозвољава апликацији да преузме интерни статус система. Злонамерне апликације могу да преузимају разноврсне приватне и заштићене информације које им обично нису потребне."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"преузимање садржаја екрана"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Дозвољава апликацији да преузме садржај активног прозора. Злонамерне апликације могу да преузму цео садржај прозора и прегледају целокупан текст, осим лозинки."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"делимично искључивање"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Ставља менаџера активности у стање искључивања. Не искључује га у потпуности."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"спречавање пребацивања са једне апликације на другу"</string>
diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml
index f9ab2ed..38206f1 100644
--- a/core/res/res/values-sv/strings.xml
+++ b/core/res/res/values-sv/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Tillåter att appen hämtar systemets interna status. Skadliga appar kan hämta privat och skyddad information som normalt aldrig ska behövas."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"hämta skärminnehåll"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Tillåter att appen hämtar innehållet i det aktiva fönstret. Skadliga appar kan hämta allt innehåll i fönstret och läsa all text utom lösenord."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"avsluta delvis"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Sätter aktivitetshanteraren i avstängningsläge. Utför inte en fullständig avstängning."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"förhindrar programbyten"</string>
diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml
index 7b1ee78..b1d89b1 100644
--- a/core/res/res/values-sw/strings.xml
+++ b/core/res/res/values-sw/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Inaruhusu programu kutoa hali ya ndani ya mfumo. Programu hasidi zinaweza kutoa aina nyingi za taarifa za faragha na salama ambazo kwa kawaida hazihitaji."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"epua maudhui ya skrini"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Inaruhusu programu kutoa maudhui ya dirisha amilifu. Programu hasidi zinaweza kutoa maudhui yote ya dirisha na kuchunguza maandishi yake yote isipokuwa nenosiri."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"Zima nusu"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Huweka kisimamia shughuli katika hali ya kuzima. Haiadhiri uzimaji kamili"</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"zuia swichi za app"</string>
diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml
index 3f6c173..07ad62d 100644
--- a/core/res/res/values-th/strings.xml
+++ b/core/res/res/values-th/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"อนุญาตให้แอปพลิเคชันเรียกดูสถานะภายในของระบบ แอปพลิเคชันที่เป็นอันตรายอาจเรียกดูข้อมูลส่วนบุคคลและข้อมูลที่ต้องรักษาความปลอดภัยหลากหลายประเภทที่ปกติแล้วไม่จำเป็นต้องใช้แต่อย่างใด"</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"ดึงเนื้อหาหน้าจอ"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"อนุญาตให้แอปพลิเคชันดึงเนื้อหาของหน้าต่างที่ใช้งานอยู่ แอปพลิเคชันที่เป็นอันตรายอาจดึงเนื้อหาจากหน้าต่างทั้งหมดและตรวจสอบข้อความทั้งหมดยกเว้นรหัสผ่าน"</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"ปิดการทำงานบางส่วน"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"กำหนดให้ตัวจัดการกิจกรรมอยู่ในสถานะปิดระบบ โดยไม่ได้ปิดระบบอย่างสมบูรณ์"</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"ป้องกันการเปลี่ยนแอปพลิเคชัน"</string>
@@ -1237,7 +1245,7 @@
     <string name="description_direction_left" msgid="7207478719805562165">"เลื่อนไปทางซ้ายเพื่อ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string>
     <string name="description_direction_right" msgid="8034433242579600980">"เลื่อนไปทางขวาเพื่อ <xliff:g id="TARGET_DESCRIPTION">%s</xliff:g>"</string>
     <string name="description_target_unlock" msgid="2228524900439801453">"ปลดล็อก"</string>
-    <string name="description_target_camera" msgid="969071997552486814">"กล้องถ่ายรูป"</string>
+    <string name="description_target_camera" msgid="969071997552486814">"กล้อง"</string>
     <string name="description_target_silent" msgid="893551287746522182">"ปิดเสียง"</string>
     <string name="description_target_soundon" msgid="30052466675500172">"เปิดเสียง"</string>
     <string name="description_target_search" msgid="3091587249776033139">"ค้นหา"</string>
diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml
index ea21b68..ce9d9df 100644
--- a/core/res/res/values-tl/strings.xml
+++ b/core/res/res/values-tl/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Pinapayagan ang app na mabawi ang panloob na katayuan ng system. Maaaring bawiin ng nakakahamak na apps ang iba\'t ibang pribado at secure na impormasyon na hindi kailanman normal na kinakailangan ng mga ito."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"kunin ang nilalaman ng screen"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Pinapayagan ang app na bawiin ang nilalaman ng aktibong window. Maaaring bawiin ng nakakahamak na apps ang kabuuang nilalaman ng window at suriin ang lahat ng teksto nito maliban sa mga password."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"bahagyang pag-shutdown"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Inilalagay ang tagapamahala ng aktibidad sa katayuan ng pag-shutdown. Hindi nagsasagawa ng kumpletong pag-shutdown."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"pigilan ang mga paglipat ng app"</string>
diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml
index 777dd2a..1a6f935 100644
--- a/core/res/res/values-tr/strings.xml
+++ b/core/res/res/values-tr/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Uygulamaya, sistemin iç durumunu alma izni verir. Kötü amaçlı uygulamalar normalde gerek duymadıkları çok çeşitli özel ve güvenli bilgilerini alabilir."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"ekran içeriğini al"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Uygulamaya, etkin pencerenin içeriğini alma izni verir. Kötü amaçlı uygulamalar tüm pencere içeriğini alabilir ve şifreleri hariç tüm metni inceleyebilir."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"kısmi kapatma"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Eylem yöneticisini kapalı duruma getirir. Tam kapatma işlemi gerçekleştirmez."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"uygulama değişimlerini engelle"</string>
diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml
index 657ab7a..dca6594 100644
--- a/core/res/res/values-uk/strings.xml
+++ b/core/res/res/values-uk/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Дозволяє програмі отримувати дані про внутрішній стан системи. Шкідливі програми можуть отримувати значну кількість особистої та конфіденційної інформації, яка для них не призначена."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"отримувати вміст екрана"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Дозволяє програмі отримувати вміст активного вікна. Шкідливі програми можуть отримувати весь вміст вікна та вивчати весь його текст, окрім паролів."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"частк. заверш. роб."</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Переводить диспетчер дій у стан завершення роботи. Не виконує повне завершення роботи."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"запобіг. зміні програм"</string>
diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml
index 8b1caf2..294c034 100644
--- a/core/res/res/values-vi/strings.xml
+++ b/core/res/res/values-vi/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Cho phép ứng dụng truy xuất trạng thái nội bộ của hệ thống. Ứng dụng độc hại có thể truy xuất nhiều loại thông tin riêng tư và bảo mật khác nhau mà thông thường chúng không bao giờ cần."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"truy xuất nội dung màn hình"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Cho phép ứng dụng truy xuất nội dung của cửa sổ hiện hành. Ứng dụng độc hại có thể truy xuất toàn bộ nội dung của cửa sổ cũng như xem xét toàn bộ văn bản của cửa sổ ngoại trừ mật khẩu."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"tắt từng phần"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Đặt trình quản lý hoạt động sang trạng thái tắt. Không thực hiện tắt hoàn toàn."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"ngăn chuyển đổi ứng dụng"</string>
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
index ed1d8f9..c7fc993 100644
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"允许应用检索系统的内部状态。恶意应用可能会检索一般情况下绝不需要检索的多种私人信息和安全信息。"</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"检索屏幕内容"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"允许应用检索活动窗口的内容。恶意应用可能会检索整个窗口的内容,并检查其中除密码以外的所有文字。"</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"部分关机"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"使活动管理器进入关闭状态。不执行彻底关机。"</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"禁止切换应用"</string>
@@ -630,7 +638,7 @@
     <string name="phoneTypeMms" msgid="7254492275502768992">"彩信"</string>
     <string name="eventTypeCustom" msgid="7837586198458073404">"自定义"</string>
     <string name="eventTypeBirthday" msgid="2813379844211390740">"生日"</string>
-    <string name="eventTypeAnniversary" msgid="3876779744518284000">"周年纪念"</string>
+    <string name="eventTypeAnniversary" msgid="3876779744518284000">"周年纪念日"</string>
     <string name="eventTypeOther" msgid="7388178939010143077">"其他"</string>
     <string name="emailTypeCustom" msgid="8525960257804213846">"自定义"</string>
     <string name="emailTypeHome" msgid="449227236140433919">"家用"</string>
diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml
index eced3ce..8f59193 100644
--- a/core/res/res/values-zh-rTW/strings.xml
+++ b/core/res/res/values-zh-rTW/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"允許應用程式擷取系統內部狀態。請注意,惡意應用程式可能利用此功能異常擷取各類私人資訊和安全性資訊。"</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"擷取螢幕內容"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"允許應用程式擷取使用中的視窗內容。請注意,惡意應用程式可能利用此功能擷取完整視窗內容,並檢視密碼之外的所有文字。"</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"部分關機"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"讓活動管理員進入關機狀態,而不執行完整的關機程序。"</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"防止切換應用程式"</string>
diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml
index 5116100..ffcfa06 100644
--- a/core/res/res/values-zu/strings.xml
+++ b/core/res/res/values-zu/strings.xml
@@ -243,6 +243,14 @@
     <string name="permdesc_dump" msgid="1778299088692290329">"Ivumela insiza ukuthi ithole kabusha ingaphakathi lesistimu. izinsiza ezinobungozi zingathola kabusha inqwaba yolwazi oluyimfihlo noluvikelekile ezingajwayele ukuthi ziludinge."</string>
     <string name="permlab_retrieve_window_content" msgid="8022588608994589938">"letha okuqukethwe kwesikrini"</string>
     <string name="permdesc_retrieve_window_content" msgid="3193269069469700265">"Ivumela insiza ukuthi ithole okuqukethe kwi-Window. Izinsiza ezinobungozi zingathola kabush iwindi eliphelele bese ibheka konke okuqukethwe ngaphandle kwaaaphasiwedi."</string>
+    <!-- no translation found for permlab_retrieve_window_info (8532295199112519378) -->
+    <skip />
+    <!-- no translation found for permdesc_retrieve_window_info (4998836370424186849) -->
+    <skip />
+    <!-- no translation found for permlab_filter_events (8675535648807427389) -->
+    <skip />
+    <!-- no translation found for permdesc_filter_events (8006236315888347680) -->
+    <skip />
     <string name="permlab_shutdown" msgid="7185747824038909016">"ukuvala shaqa kwengxenye"</string>
     <string name="permdesc_shutdown" msgid="7046500838746291775">"Ibeka imeneja yomsebenzi kwisimo sokuvala shaqa. Ayenzi ukuvala shaqa okuphelele."</string>
     <string name="permlab_stopAppSwitches" msgid="4138608610717425573">"gwema ukushintsha kohlelo lokusebenza"</string>
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 170c95d..a39d98d 100755
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -630,6 +630,20 @@
         the entire window content and examine all its text except passwords.</string>
 
     <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
+    <string name="permlab_retrieve_window_info">retrieve window info</string>
+    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
+    <string name="permdesc_retrieve_window_info">Allows an application to retrieve
+         information about the the windows from the window manager. Malicious apps may
+         retrieve information that is intended for internal system usage.</string>
+
+    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
+    <string name="permlab_filter_events">filter events</string>
+    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
+    <string name="permdesc_filter_events">Allows an application to register an input filter
+        which filters the stream of all user events before they are dispatched. Malicious app
+        may control the system UI whtout user intervention.</string>
+
+    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permlab_shutdown">partial shutdown</string>
     <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permdesc_shutdown">Puts the activity manager into a shutdown
diff --git a/docs/html/about/versions/android-4.0.3.jd b/docs/html/about/versions/android-4.0.3.jd
index b7d4db3..a8c7e83 100644
--- a/docs/html/about/versions/android-4.0.3.jd
+++ b/docs/html/about/versions/android-4.0.3.jd
@@ -44,8 +44,7 @@
 
   <p><a href="#" onclick="return toggleContent(this)">
     <img src="{@docRoot}assets/images/triangle-closed.png"
-class="toggle-content-img" alt="" />
-    <strong>Table of Contents</strong>
+class="toggle-content-img" alt="" /><strong>Table of Contents</strong>
   </a></p>
 
   <div class="toggle-content-toggleme" style="padding-left:2em;">
diff --git a/docs/html/guide/google/gcm/adv.jd b/docs/html/guide/google/gcm/adv.jd
index aec8ca4..39e946e 100644
--- a/docs/html/guide/google/gcm/adv.jd
+++ b/docs/html/guide/google/gcm/adv.jd
@@ -27,6 +27,7 @@
   <ol>
     <li><a href="#s2s">Send-to-sync messages</a></li>
     <li><a href="#payload">Messages with payload</a></li>
+<li><a href="#which">Which should I use?</a></li>
     </ol>
 </li>
 <li><a href="#ttl">Setting an Expiration Date for a Message</a> </li>
@@ -185,10 +186,22 @@
 <p>Note that it might take a while for the registration ID be completely removed from GCM. Thus it is possible that messages sent during step 7 above gets a valid message ID as response, even though the message will not be delivered to the device. Eventually, the registration ID will be removed and the server will get a <code>NotRegistered</code> error, without any further action being required from the 3rd-party server (this scenario happens frequently while an application is being developed and tested).</p>
 
 <h2 id="collapsible">Send-to-Sync  vs. Messages with Payload</h2>
-<p>Every message sent in GCM, regardless of its other characteristics, is either a &quot;send-to-sync&quot; (collapsible) message or a &quot;message with payload&quot; (non-collapsible message).</p>
+
+<p>Every message sent in GCM has the following characteristics:</p>
+<ul>
+  <li>It has a payload limit of 4096 bytes.</li>
+  <li>By default, it is stored by GCM for 4 weeks.</li>
+</ul>
+
+<p>But despite these similarities, messages can behave very differently depending on their particular settings. One major distinction between messages is whether they are collapsed (where each new message replaces the preceding message) or not collapsed (where each individual message is delivered). Every message sent in GCM is either a &quot;send-to-sync&quot; (collapsible) message or a &quot;message with payload&quot; (non-collapsible message). These concepts are described in more detail in the following sections.</p>
+
 <h3 id="s2s"><strong>Send-to-sync messages</strong></h3>
-<p>A send-to-sync (collapsible) message is typically a &quot;tickle&quot; that tells a mobile application to sync data from the server. For example, suppose you have an email application. When a user receives new email on the server, the server pings the mobile application with a &quot;New mail&quot; message. This tells the application to sync to the server to pick up the new email. The server might send this message multiple times as new mail continues to accumulate, before the application has had a chance to sync. But if the user has received 25 new emails, there's no need to preserve every &quot;New mail&quot; message. One  is sufficient. This is a case where you would use the GCM <code>collapse_key</code> parameter. A <em>collapse key</em> is an arbitrary string that is used to collapse a group of like messages when the device is offline, so that only the last message gets sent to the client. For example, &quot;New mail,&quot; &quot;Updates available,&quot; and so on</p>
-<p>GCM allows a maximum of 4 different collapse keys to be used by the GCM server at any given time. In other words, the GCM server can simultaneously store 4 different send-to-sync messages, each with a different collapse key.</p>
+
+<p>A send-to-sync (collapsible) message is often a &quot;tickle&quot; that tells a mobile application to sync data from the server. For example, suppose you have an email application. When a user receives new email on the server, the server pings the mobile application with a &quot;New mail&quot; message. This tells the application to sync to the server to pick up the new email. The server might send this message multiple times as new mail continues to accumulate, before the application has had a chance to sync. But if the user has received 25 new emails, there's no need to preserve every &quot;New mail&quot; message. One is sufficient. Another example would be a sports application that updates users with the latest score. Only the most recent message is relevant, so it makes sense to have each new message replace the preceding message. </p>
+
+<p>The email and sports applications are cases where you would probably use the GCM <code>collapse_key</code> parameter. A <em>collapse key</em> is an arbitrary string that is used to collapse a group of like messages when the device is offline, so that only the most recent message gets sent to the client. For example, &quot;New mail,&quot; &quot;Updates available,&quot; and so on</p>
+<p>GCM allows a maximum of 4 different collapse keys to be used by the GCM server at any given time. In other words, the GCM server can simultaneously store 4 different send-to-sync messages, each with a different collapse key. If you exceed this number GCM will only keep 4 collapse keys, with no guarantees about which ones they will be.</p>
+
 <h3 id="payload">Messages with payload</h3>
 <p>Unlike a send-to-sync message, every &quot;message with payload&quot; (non-collapsible message) is delivered. The payload the message contains can be up to 4K. For example, here is a JSON-formatted message in an IM application in which spectators are discussing a sporting event:</p>
 
@@ -208,9 +221,10 @@
   <li><code>total_deleted</code>&mdash;The value  is a string with the number of deleted messages.</li>
 </ul>
 <p>The application should respond by syncing with the server to recover the discarded messages. </p>
-  <p class="note"><strong>Note:</strong> If your application does not need to use non-collapsible messages, collapsible messages are a better choice from a performance standpoint, because they put less of a burden on the device battery.
- 
-</p>
+
+<h3 id="which">Which should I use?</h3>
+  <p>If your application does not need to use non-collapsible messages, collapsible messages are a better choice from a performance standpoint, because they put less of a burden on the device battery.</p>
+
 <h2 dir="ltr" id="ttl">Setting an Expiration Date for a Message</h2>
 <p>The Time to Live (TTL) feature lets  the sender  specify the maximum lifespan of a message using the <code>time_to_live</code> parameter in the send request. The value of this parameter must be a duration from 0 to 2,419,200 seconds, and it corresponds to the maximum period of time for which GCM will store and try to deliver the message. Requests that don't contain this field default to the maximum period of 4 weeks.</p>
 <p>Here are some possible uses for this feature:</p>
diff --git a/docs/html/guide/google/gcm/client-javadoc/allclasses-frame.html b/docs/html/guide/google/gcm/client-javadoc/allclasses-frame.html
index 4788142..26916d5 100644
--- a/docs/html/guide/google/gcm/client-javadoc/allclasses-frame.html
+++ b/docs/html/guide/google/gcm/client-javadoc/allclasses-frame.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:06:25 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:13:37 PDT 2012 -->
 <TITLE>
 All Classes
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="default.css" TITLE="Style">
 
 
 </HEAD>
diff --git a/docs/html/guide/google/gcm/client-javadoc/allclasses-noframe.html b/docs/html/guide/google/gcm/client-javadoc/allclasses-noframe.html
index cf3b68c..6ae9fe0 100644
--- a/docs/html/guide/google/gcm/client-javadoc/allclasses-noframe.html
+++ b/docs/html/guide/google/gcm/client-javadoc/allclasses-noframe.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:06:25 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:13:37 PDT 2012 -->
 <TITLE>
 All Classes
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="default.css" TITLE="Style">
 
 
 </HEAD>
diff --git a/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/GCMBaseIntentService.html b/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/GCMBaseIntentService.html
index 0b2cfad..eed1aea 100644
--- a/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/GCMBaseIntentService.html
+++ b/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/GCMBaseIntentService.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:06:25 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:13:36 PDT 2012 -->
 <TITLE>
 GCMBaseIntentService
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../default.css" TITLE="Style">
 
 <SCRIPT type="text/javascript">
 function windowTitle()
@@ -107,6 +107,8 @@
  hence should run in a limited amount of time. If they execute long
  operations, they should spawn new threads, otherwise the worker thread will
  be blocked.
+ <p>
+ Subclasses must provide a public no-arg constructor.
 <P>
 
 <P>
@@ -142,11 +144,19 @@
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>protected </CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../../com/google/android/gcm/GCMBaseIntentService.html#GCMBaseIntentService(java.lang.String)">GCMBaseIntentService</A></B>(java.lang.String&nbsp;senderId)</CODE>
+<TD><CODE><B><A HREF="../../../../com/google/android/gcm/GCMBaseIntentService.html#GCMBaseIntentService()">GCMBaseIntentService</A></B>()</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Subclasses must create a public no-arg constructor and pass the
- sender id to be used for registration.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor that does not set a sender id, useful when the sender id
+ is context-specific.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected </CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/google/android/gcm/GCMBaseIntentService.html#GCMBaseIntentService(java.lang.String...)">GCMBaseIntentService</A></B>(java.lang.String...&nbsp;senderIds)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor used when the sender id(s) is fixed.</TD>
 </TR>
 </TABLE>
 &nbsp;
@@ -160,6 +170,14 @@
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;java.lang.String[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/google/android/gcm/GCMBaseIntentService.html#getSenderIds(Context)">getSenderIds</A></B>(Context&nbsp;context)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets the sender ids.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>protected &nbsp;void</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../../com/google/android/gcm/GCMBaseIntentService.html#onDeletedMessages(Context, int)">onDeletedMessages</A></B>(Context&nbsp;context,
                   int&nbsp;total)</CODE>
@@ -263,13 +281,28 @@
 </TR>
 </TABLE>
 
-<A NAME="GCMBaseIntentService(java.lang.String)"><!-- --></A><H3>
+<A NAME="GCMBaseIntentService()"><!-- --></A><H3>
 GCMBaseIntentService</H3>
 <PRE>
-protected <B>GCMBaseIntentService</B>(java.lang.String&nbsp;senderId)</PRE>
+protected <B>GCMBaseIntentService</B>()</PRE>
 <DL>
-<DD>Subclasses must create a public no-arg constructor and pass the
- sender id to be used for registration.
+<DD>Constructor that does not set a sender id, useful when the sender id
+ is context-specific.
+ <p>
+ When using this constructor, the subclass <strong>must</strong>
+ override <A HREF="../../../../com/google/android/gcm/GCMBaseIntentService.html#getSenderIds(Context)"><CODE>getSenderIds(Context)</CODE></A>, otherwise methods such as
+ <A HREF="../../../../com/google/android/gcm/GCMBaseIntentService.html#onHandleIntent(Intent)"><CODE>onHandleIntent(Intent)</CODE></A> will throw an
+ <CODE>IllegalStateException</CODE> on runtime.
+<P>
+</DL>
+<HR>
+
+<A NAME="GCMBaseIntentService(java.lang.String...)"><!-- --></A><H3>
+GCMBaseIntentService</H3>
+<PRE>
+protected <B>GCMBaseIntentService</B>(java.lang.String...&nbsp;senderIds)</PRE>
+<DL>
+<DD>Constructor used when the sender id(s) is fixed.
 <P>
 </DL>
 
@@ -283,6 +316,24 @@
 </TR>
 </TABLE>
 
+<A NAME="getSenderIds(Context)"><!-- --></A><H3>
+getSenderIds</H3>
+<PRE>
+protected java.lang.String[] <B>getSenderIds</B>(Context&nbsp;context)</PRE>
+<DL>
+<DD>Gets the sender ids.
+
+ <p>By default, it returns the sender ids passed in the constructor, but
+ it could be overridden to provide a dynamic sender id.
+<P>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE>java.lang.IllegalStateException</CODE> - if sender id was not set on constructor.</DL>
+</DD>
+</DL>
+<HR>
+
 <A NAME="onMessage(Context, Intent)"><!-- --></A><H3>
 onMessage</H3>
 <PRE>
diff --git a/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/GCMBroadcastReceiver.html b/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/GCMBroadcastReceiver.html
index f0b3e26..2a1c676 100644
--- a/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/GCMBroadcastReceiver.html
+++ b/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/GCMBroadcastReceiver.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:06:25 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:13:36 PDT 2012 -->
 <TITLE>
 GCMBroadcastReceiver
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../default.css" TITLE="Style">
 
 <SCRIPT type="text/javascript">
 function windowTitle()
diff --git a/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/GCMConstants.html b/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/GCMConstants.html
index feb2225..f778f06 100644
--- a/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/GCMConstants.html
+++ b/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/GCMConstants.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:06:25 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:13:36 PDT 2012 -->
 <TITLE>
 GCMConstants
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../default.css" TITLE="Style">
 
 <SCRIPT type="text/javascript">
 function windowTitle()
diff --git a/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/GCMRegistrar.html b/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/GCMRegistrar.html
index a933bc6..bb486ff 100644
--- a/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/GCMRegistrar.html
+++ b/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/GCMRegistrar.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:06:25 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:13:36 PDT 2012 -->
 <TITLE>
 GCMRegistrar
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../default.css" TITLE="Style">
 
 <SCRIPT type="text/javascript">
 function windowTitle()
@@ -74,9 +74,9 @@
 </TR>
 <TR>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
 </TR>
 </TABLE>
 <A NAME="skip-navbar_top"></A>
@@ -109,7 +109,25 @@
 <HR>
 
 <P>
+<!-- =========== FIELD SUMMARY =========== -->
 
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/google/android/gcm/GCMRegistrar.html#DEFAULT_ON_SERVER_LIFESPAN_MS">DEFAULT_ON_SERVER_LIFESPAN_MS</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default lifespan (7 days) of the <A HREF="../../../../com/google/android/gcm/GCMRegistrar.html#isRegisteredOnServer(Context)"><CODE>isRegisteredOnServer(Context)</CODE></A>
+ flag until it is considered expired.</TD>
+</TR>
+</TABLE>
+&nbsp;
 <!-- ========== METHOD SUMMARY =========== -->
 
 <A NAME="method_summary"><!-- --></A>
@@ -136,6 +154,15 @@
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/google/android/gcm/GCMRegistrar.html#getRegisterOnServerLifespan(Context)">getRegisterOnServerLifespan</A></B>(Context&nbsp;context)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets how long (in milliseconds) the <A HREF="../../../../com/google/android/gcm/GCMRegistrar.html#isRegistered(Context)"><CODE>isRegistered(Context)</CODE></A>
+ property is valid.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../../com/google/android/gcm/GCMRegistrar.html#getRegistrationId(Context)">getRegistrationId</A></B>(Context&nbsp;context)</CODE>
 
@@ -157,7 +184,8 @@
 <TD><CODE><B><A HREF="../../../../com/google/android/gcm/GCMRegistrar.html#isRegisteredOnServer(Context)">isRegisteredOnServer</A></B>(Context&nbsp;context)</CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks whether the device was successfully registered in the server side.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Checks whether the device was successfully registered in the server side,
+ as set by <A HREF="../../../../com/google/android/gcm/GCMRegistrar.html#setRegisteredOnServer(Context, boolean)"><CODE>setRegisteredOnServer(Context, boolean)</CODE></A>.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -188,6 +216,16 @@
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/google/android/gcm/GCMRegistrar.html#setRegisterOnServerLifespan(Context, long)">setRegisterOnServerLifespan</A></B>(Context&nbsp;context,
+                            long&nbsp;lifespan)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets how long (in milliseconds) the <A HREF="../../../../com/google/android/gcm/GCMRegistrar.html#isRegistered(Context)"><CODE>isRegistered(Context)</CODE></A>
+ flag is valid.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../../com/google/android/gcm/GCMRegistrar.html#unregister(Context)">unregister</A></B>(Context&nbsp;context)</CODE>
 
 <BR>
@@ -206,6 +244,28 @@
 &nbsp;
 <P>
 
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="DEFAULT_ON_SERVER_LIFESPAN_MS"><!-- --></A><H3>
+DEFAULT_ON_SERVER_LIFESPAN_MS</H3>
+<PRE>
+public static final long <B>DEFAULT_ON_SERVER_LIFESPAN_MS</B></PRE>
+<DL>
+<DD>Default lifespan (7 days) of the <A HREF="../../../../com/google/android/gcm/GCMRegistrar.html#isRegisteredOnServer(Context)"><CODE>isRegisteredOnServer(Context)</CODE></A>
+ flag until it is considered expired.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#com.google.android.gcm.GCMRegistrar.DEFAULT_ON_SERVER_LIFESPAN_MS">Constant Field Values</A></DL>
+</DL>
+
 <!-- ============ METHOD DETAIL ========== -->
 
 <A NAME="method_detail"><!-- --></A>
@@ -375,7 +435,44 @@
 <PRE>
 public static boolean <B>isRegisteredOnServer</B>(Context&nbsp;context)</PRE>
 <DL>
-<DD>Checks whether the device was successfully registered in the server side.
+<DD>Checks whether the device was successfully registered in the server side,
+ as set by <A HREF="../../../../com/google/android/gcm/GCMRegistrar.html#setRegisteredOnServer(Context, boolean)"><CODE>setRegisteredOnServer(Context, boolean)</CODE></A>.
+
+ <p>To avoid the scenario where the device sends the registration to the
+ server but the server loses it, this flag has an expiration date, which
+ is <A HREF="../../../../com/google/android/gcm/GCMRegistrar.html#DEFAULT_ON_SERVER_LIFESPAN_MS"><CODE>DEFAULT_ON_SERVER_LIFESPAN_MS</CODE></A> by default (but can be changed
+ by <A HREF="../../../../com/google/android/gcm/GCMRegistrar.html#setRegisterOnServerLifespan(Context, long)"><CODE>setRegisterOnServerLifespan(Context, long)</CODE></A>).
+<P>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getRegisterOnServerLifespan(Context)"><!-- --></A><H3>
+getRegisterOnServerLifespan</H3>
+<PRE>
+public static long <B>getRegisterOnServerLifespan</B>(Context&nbsp;context)</PRE>
+<DL>
+<DD>Gets how long (in milliseconds) the <A HREF="../../../../com/google/android/gcm/GCMRegistrar.html#isRegistered(Context)"><CODE>isRegistered(Context)</CODE></A>
+ property is valid.
+<P>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>value set by <A HREF="../../../../com/google/android/gcm/GCMRegistrar.html#setRegisteredOnServer(Context, boolean)"><CODE>setRegisteredOnServer(Context, boolean)</CODE></A> or
+      <A HREF="../../../../com/google/android/gcm/GCMRegistrar.html#DEFAULT_ON_SERVER_LIFESPAN_MS"><CODE>DEFAULT_ON_SERVER_LIFESPAN_MS</CODE></A> if not set.</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setRegisterOnServerLifespan(Context, long)"><!-- --></A><H3>
+setRegisterOnServerLifespan</H3>
+<PRE>
+public static void <B>setRegisterOnServerLifespan</B>(Context&nbsp;context,
+                                               long&nbsp;lifespan)</PRE>
+<DL>
+<DD>Sets how long (in milliseconds) the <A HREF="../../../../com/google/android/gcm/GCMRegistrar.html#isRegistered(Context)"><CODE>isRegistered(Context)</CODE></A>
+ flag is valid.
 <P>
 <DD><DL>
 </DL>
@@ -431,9 +528,9 @@
 </TR>
 <TR>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
 <TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
 </TR>
 </TABLE>
 <A NAME="skip-navbar_bottom"></A>
diff --git a/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/package-frame.html b/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/package-frame.html
index 9dc665f..4828eea 100644
--- a/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/package-frame.html
+++ b/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/package-frame.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:06:25 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:13:37 PDT 2012 -->
 <TITLE>
 com.google.android.gcm
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../default.css" TITLE="Style">
 
 
 </HEAD>
diff --git a/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/package-summary.html b/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/package-summary.html
index 2b15b81..877248b 100644
--- a/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/package-summary.html
+++ b/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/package-summary.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:06:25 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:13:37 PDT 2012 -->
 <TITLE>
 com.google.android.gcm
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../default.css" TITLE="Style">
 
 <SCRIPT type="text/javascript">
 function windowTitle()
diff --git a/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/package-tree.html b/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/package-tree.html
index f36a8a69..bf6fce3 100644
--- a/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/package-tree.html
+++ b/docs/html/guide/google/gcm/client-javadoc/com/google/android/gcm/package-tree.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:06:25 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:13:37 PDT 2012 -->
 <TITLE>
 com.google.android.gcm Class Hierarchy
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../default.css" TITLE="Style">
 
 <SCRIPT type="text/javascript">
 function windowTitle()
diff --git a/docs/html/guide/google/gcm/client-javadoc/constant-values.html b/docs/html/guide/google/gcm/client-javadoc/constant-values.html
index 171c6a1..6ccd123 100644
--- a/docs/html/guide/google/gcm/client-javadoc/constant-values.html
+++ b/docs/html/guide/google/gcm/client-javadoc/constant-values.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:06:25 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:13:37 PDT 2012 -->
 <TITLE>
 Constant Field Values
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="default.css" TITLE="Style">
 
 <SCRIPT type="text/javascript">
 function windowTitle()
@@ -251,6 +251,24 @@
 <P>
 
 <P>
+
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left" COLSPAN="3">com.google.android.gcm.<A HREF="com/google/android/gcm/GCMRegistrar.html" title="class in com.google.android.gcm">GCMRegistrar</A></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.google.android.gcm.GCMRegistrar.DEFAULT_ON_SERVER_LIFESPAN_MS"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;long</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/google/android/gcm/GCMRegistrar.html#DEFAULT_ON_SERVER_LIFESPAN_MS">DEFAULT_ON_SERVER_LIFESPAN_MS</A></CODE></TD>
+<TD ALIGN="right"><CODE>604800000L</CODE></TD>
+</TR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<P>
 <HR>
 
 
diff --git a/docs/html/guide/google/gcm/client-javadoc/default.css b/docs/html/guide/google/gcm/client-javadoc/default.css
new file mode 100644
index 0000000..2513e69
--- /dev/null
+++ b/docs/html/guide/google/gcm/client-javadoc/default.css
@@ -0,0 +1,4005 @@
+/* color definitions */
+/* 16 column layout */
+/* clearfix idiom */
+/* common mixins */
+/* page layout + top-level styles */
+::-webkit-selection,
+::-moz-selection,
+::selection {
+  background-color: #0099cc;
+  color: #fff; }
+
+html, body {
+  height: 100%;
+  margin: 0;
+  padding: 0;
+  background-color:#F9F9F9;
+  -webkit-font-smoothing: antialiased;
+  /* prevent subpixel antialiasing, which thickens the text */
+  /* text-rendering: optimizeLegibility; */
+  /* turned off ligatures due to bug 5945455 */ }
+
+body {
+  color: #222;
+  font: 14px/19px Roboto, sans-serif;
+  font-weight: 400;
+  letter-spacing:.1;
+  padding:0 10px; }
+
+#page-container {
+  width: 940px;
+  margin: 0 40px; }
+
+#page-header {
+  height: 80px;
+  margin-bottom: 20px;
+  font-size: 48px;
+  line-height: 48px;
+  font-weight: 100;
+  padding-left: 10px; }
+  #page-header a {
+    display: block;
+    position: relative;
+    top: 20px;
+    text-decoration: none;
+    color: #555555 !important; }
+
+#main-row {
+  display: inline-block; }
+  #main-row:after {
+    content: ".";
+    display: block;
+    height: 0;
+    clear: both;
+    visibility: hidden; }
+  * html #main-row {
+    height: 1px; }
+
+#page-footer {
+  margin-left: 190px;
+  margin-top: 80px;
+  color: #999999;
+  padding-bottom: 40px;
+  font-size: 12px;
+  line-height: 15px; }
+  #page-footer a {
+    color: #777777; }
+  #page-footer #copyright {
+    margin-bottom: 10px; }
+
+#nav-container {
+  width: 160px;
+  min-height: 10px;
+  margin-right: 20px;
+  float: left; }
+
+#nav {
+  margin:0;
+  padding:0 0 30px;
+}
+
+#side-nav {
+  min-height:5px; /* silly way to avoid doc floating left when nav goes fixed */
+  margin-bottom:1px;
+}
+#devdoc-nav {
+  outline:none;
+  width:auto;
+  margin: 20px 0 0; }
+  
+#devdoc-nav h2 {
+  border:0;
+}
+
+#devdoc-nav.fixed {
+  position: fixed;
+  margin:0;
+  top: 20px; }
+
+#content {
+  width: 760px;
+  float: left; }
+
+a:hover,
+acronym:hover {
+  color: #7aa1b0 !important; }
+
+a:focus,
+a:active {
+  color: #33b5e5 !important; }
+
+img {
+  border: none; }
+#jd-content img {
+  margin-bottom:15px;
+}
+
+ul {
+  margin: 0;
+  padding: 0; }
+
+strong {
+  font-weight: 500; }
+
+em {
+  font-style: italic; }
+
+acronym {
+  border-bottom: 1px dotted #555555;
+  cursor: help; }
+
+acronym:hover {
+  border-bottom-color: #7aa1b0; }
+
+img.with-shadow,
+video.with-shadow {
+  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25); }
+
+/* disclosures mixin */
+/* content layout */
+.layout-content-row {
+  display: inline-block;
+  margin-bottom: 10px; }
+  .layout-content-row:after {
+    content: ".";
+    display: block;
+    height: 0;
+    clear: both;
+    visibility: hidden; }
+  * html .layout-content-row {
+    height: 1px; }
+
+.layout-content-col {
+  float: left;
+  margin-left: 20px; }
+  .layout-content-col:first-child {
+    margin-left: 0; }
+  .layout-content-col h3,
+  .layout-content-col h4 {
+    margin-top:0; }
+
+.layout-content-col.span-1 {
+  width: 40px; }
+
+.layout-content-col.span-2 {
+  width: 100px; }
+
+.layout-content-col.span-3 {
+  width: 160px; }
+
+.layout-content-col.span-4 {
+  width: 220px; }
+
+.layout-content-col.span-5 {
+  width: 280px; }
+
+.layout-content-col.span-6 {
+  width: 340px; }
+
+.layout-content-col.span-7 {
+  width: 400px; }
+
+.layout-content-col.span-8 {
+  width: 460px; }
+
+.layout-content-col.span-9 {
+  width: 520px; }
+
+.layout-content-col.span-10 {
+  width: 580px; }
+
+.layout-content-col.span-11 {
+  width: 640px; }
+
+.layout-content-col.span-12 {
+  width: 700px; }
+
+.layout-content-col.span-13 {
+  width: 760px; }
+
+.vspace.size-1 {
+  height: 10px; }
+
+.vspace.size-2 {
+  height: 20px; }
+
+.vspace.size-3 {
+  height: 30px; }
+
+.vspace.size-4 {
+  height: 40px; }
+
+.vspace.size-5 {
+  height: 50px; }
+
+.vspace.size-6 {
+  height: 60px; }
+
+.vspace.size-7 {
+  height: 70px; }
+
+.vspace.size-8 {
+  height: 80px; }
+
+.vspace.size-9 {
+  height: 90px; }
+
+.vspace.size-10 {
+  height: 100px; }
+
+.vspace.size-11 {
+  height: 110px; }
+
+.vspace.size-12 {
+  height: 120px; }
+
+.vspace.size-13 {
+  height: 130px; }
+
+.vspace.size-14 {
+  height: 140px; }
+
+.vspace.size-15 {
+  height: 150px; }
+
+.vspace.size-16 {
+  height: 160px; }
+
+/* nav */
+#nav {
+  /* section header divs */
+  /* expanded section header divs */
+  /* sublinks */ }
+  #nav li {
+    list-style-type: none;
+    font-size: 14px;
+    margin:0;
+    padding:0;
+    line-height: 15px; }
+  #nav a {
+    color: #555555;
+    text-decoration: none; }
+  #nav .nav-section-header {
+    position: relative;
+    margin-bottom: 1px;
+    padding: 0 30px 0 0; }
+  #nav li.selected a, #nav li.selected > .nav-section-header > a {
+    color: #09C;
+  }
+  #nav li.selected ul li a {
+  /* don't highlight child items */
+    color: #555555; }
+  #nav .nav-section .nav-section .nav-section-header {
+    /* no white line between second level sections */
+    margin-bottom: 0; }
+    /* section header links */
+    #nav > li > div > a {
+      display: block;
+      color: #333333;
+      font-weight: 500;
+      padding: 10px 0 10px 10px; }
+    #nav .nav-section-header:after {
+      content: '';
+      background: transparent url(../images/styles/disclosure_down.png) no-repeat scroll 50% 50%;
+      width: 34px;
+      height: 34px;
+      display: block;
+      position: absolute;
+      top: 0;
+      right: 0; }
+    #nav .nav-section-header.empty:after {
+      display: none; }
+    /* nested nav headers */
+    #nav .nav-section .nav-section {
+      position: relative;
+      padding: 0;
+      margin: 0; }
+    #nav .nav-section li a {
+    /* first gen child (2nd level li) */
+      display:block;
+      font-weight: normal;
+      text-transform: none;
+      padding: 7px 5px 7px 10px;
+       }
+    #nav .nav-section li li a {
+    /* second gen child (3rd level li) */
+      padding: 5px 5px 5px 10px;
+       }
+  #nav li.expanded .nav-section-header {
+    background:#e9e9e9;
+    background: rgba(0, 0, 0, 0.05); }
+  #nav li.expanded li .nav-section-header {
+    background: transparent; }
+  #nav li.expanded li ul {
+  /* 3rd level ul */
+    padding:0 10px;
+  }
+    #nav li.expanded > .nav-section-header:after {
+      content: '';
+      background: transparent url(../images/styles/disclosure_up.png) no-repeat scroll 50% 50%;
+      width: 34px;
+      height: 34px; }
+  #nav li ul {
+    display:none;
+    overflow: hidden;
+    margin: 0; }
+    #nav li ul.animate-height-in {
+      -webkit-transition: height 0.25s ease-in;
+      -moz-transition: height 0.25s ease-in;
+      transition: height 0.25s ease-in; }
+    #nav li ul.animate-height-out {
+      -webkit-transition: height 0.25s ease-out;
+      -moz-transition: height 0.25s ease-out;
+      transition: height 0.25s ease-out; }
+    #nav li ul li {
+      padding: 0; }
+      #nav li li li {
+        padding: 0; }
+  #nav li.expanded ul {
+    }
+    #nav li ul > li {
+      padding:0;
+    }
+    #nav li ul > li:last-child {
+      padding-bottom:5px;
+    }
+    #nav li.expanded ul > li {
+      background:#efefef;
+      background: rgba(0, 0, 0, 0.03); }
+    #nav li.expanded ul > li li {
+      background:inherit; }
+
+.new,
+.new-child {
+  font-size: .78em;
+  font-weight: bold;
+  color: #ff3d3d;
+  vertical-align:top;
+  white-space:nowrap;
+}
+
+/* content header */
+.content-header {
+  height: 30px;
+  margin:20px 0 25px;
+  padding:0 0 10px;}
+.content-header.just-links {
+  margin-bottom:0;
+  padding-bottom:0;}
+    
+.content-header h1 {
+  color:#000;
+  margin:0;
+  border-bottom:0;
+  padding:0;
+}
+
+.content-footer {
+  border-top: 1px solid #ccc;
+  margin-top: 10px;
+  padding-top:10px;
+  height: 30px; }
+
+.content-footer .col-9 {
+  margin-left:0;
+}
+.content-footer .col-4 {
+  margin-right:0;
+}
+.content-footer.wrap {
+  width:940px;
+}
+
+.paging-links {
+  position: relative; }
+  .paging-links a {
+    position: absolute; }
+  .paging-links a,
+  .training-nav-top a {
+    font-size: 14px;
+    line-height: 30px;
+    color: #555555;
+    text-decoration: none;
+    text-transform: uppercase; }
+  .paging-links .prev-page-link,
+  .training-nav-top .prev-page-link {
+    left: -5px; }
+    .paging-links .prev-page-link:before,
+    .training-nav-top .prev-page-link:before {
+      content: '';
+      background: transparent url(../images/styles/disclosure_left.png) no-repeat scroll 50% 50%;
+      width: 10px;
+      height: 10px;
+      display: inline-block;
+      margin-right: 5px; }
+  .paging-links .next-page-link,
+  .training-nav-top .next-page-link,
+    .training-nav-top .start-class-link,
+    .training-nav-top .start-course-link {
+    right: 10px; }
+    .next-page-link:after,
+    .start-class-link:after,
+    .start-course-link:after,
+    .next-class-link:after {
+      content: '';
+      background: transparent url(../images/styles/disclosure_right.png) no-repeat scroll 50% 50%;
+      width: 10px;
+      height: 10px;
+      display: inline-block;
+      margin-left: 5px; }
+      
+      
+  .training-nav-top a {
+    display:block;
+    float:left;
+    width:108px;
+    height:28px;
+    padding: 8px 15px;
+    line-height:28px;
+    text-align:center;
+    border:1px solid #DADADA;
+    border-bottom:0;
+  }
+      
+  .training-nav-top a.next-page-link {
+    border-left:0;
+    width:109px;
+  }
+      
+  .training-nav-top a.disabled,
+  .content-footer a.disabled {
+    color:#999;
+  }
+      
+  .training-nav-top a.disabled:hover,
+  .content-footer a.disabled:hover {
+    cursor:default;
+    color:#999 !important;
+  }
+      
+  .training-nav-top a.start-class-link,
+  .training-nav-top a.start-course-link {
+    width:248px;
+  }
+  
+  .hide {
+    display:none !important;
+  }
+  
+  .content-footer.next-class {
+    display:block;
+    border:0;
+    margin-top:0;
+    padding-top:0;
+  }
+  
+  .content-footer.next-class a.next-class-link {
+    display:block;
+    float:right;
+    text-transform:uppercase;
+  }
+
+/* content body */
+@-webkit-keyframes glowheader {
+  from {
+    background-color: #33b5e5;
+    color: #000;
+    border-bottom-color: #000; }
+
+  to {
+    background-color: transparent;
+    color: #33b5e5;
+    border-bottom-color: #33b5e5; } }
+
+@-moz-keyframes glowheader {
+  from {
+    background-color: #33b5e5;
+    color: #000;
+    border-bottom-color: #000; }
+
+  to {
+    background-color: transparent;
+    color: #33b5e5;
+    border-bottom-color: #33b5e5; } }
+
+@keyframes glowheader {
+  from {
+    background-color: #33b5e5;
+    color: #000;
+    border-bottom-color: #000; }
+
+  to {
+    background-color: transparent;
+    color: #33b5e5;
+    border-bottom-color: #33b5e5; } }
+
+h2:target,
+h3:target {
+    -webkit-animation-name: glowheader;
+    -moz-animation-name: glowheader;
+    animation-name: glowheader;
+    -webkit-animation-duration: 0.7s;
+    -moz-animation-duration: 0.7s;
+    animation-duration: 0.7s;
+    -webkit-animation-timing-function: ease-out;
+    -moz-animation-timing-function: ease-out;
+    animation-timing-function: ease-out; }
+
+.design ol h4 {
+  margin-bottom:0;
+}
+.design ol {
+  counter-reset: item; }
+  .design ol li {
+    font-size: 14px;
+    line-height: 20px;
+    list-style-type: none;
+    position: relative; }
+    .design ol li:before {
+      content: counter(item) ". ";
+      counter-increment: item;
+      position: absolute;
+      left: -20px;
+      top: 0; }
+    .design ol li.value-1:before {
+      content: "1. "; }
+    .design ol li.value-2:before {
+      content: "2. "; }
+    .design ol li.value-3:before {
+      content: "3. "; }
+    .design ol li.value-4:before {
+      content: "4. "; }
+    .design ol li.value-5:before {
+      content: "5. "; }
+    .design ol li.value-6:before {
+      content: "6. "; }
+    .design ol li.value-7:before {
+      content: "7. "; }
+    .design ol li.value-8:before {
+      content: "8. "; }
+    .design ol li.value-9:before {
+      content: "9. "; }
+    .design ol li.value-10:before {
+      content: "10. "; }
+.design .with-callouts ol li {
+  list-style-position: inside;
+  margin-left: 0; }
+  .design .with-callouts ol li:before {
+    display: inline;
+    left: -20px;
+    float: left;
+    width: 17px;
+    color: #33b5e5;
+    font-weight: 500; }
+
+/* special list items */
+li.no-bullet {
+  list-style-type: none !important; }
+li.no-bullet *{
+  margin:0; }
+
+.design li.with-icon {
+  position: relative;
+  margin-left: 20px;
+  min-height: 30px; }
+  .design li.with-icon p {
+    margin-left: 0 !important; }
+  .design li.with-icon:before {
+    position: absolute;
+    left: -40px;
+    top: 0;
+    content: '';
+    width: 30px;
+    height: 30px; }
+  .design li.with-icon.tablet:before {
+    background-image: url(../images/styles/ico_phone_tablet.png); }
+  .design li.with-icon.web:before {
+    background-image: url(../images/styles/ico_web.png); }
+  .design li.with-icon.action:before {
+    background-image: url(../images/styles/ico_action.png); }
+  .design li.with-icon.use:before {
+    background-image: url(../images/styles/ico_use.png); }
+
+/* figures and callouts */
+.figure {
+  position: relative; }
+  .figure.pad-below {
+    margin-bottom: 20px; }
+  .figure .figure-callout {
+    position: absolute;
+    color: #fff;
+    font-weight: 500;
+    font-size: 16px;
+    line-height: 23px;
+    text-align: center;
+    background: transparent url(../images/styles/callout.png) no-repeat scroll 50% 50%;
+    padding-right: 2px;
+    width: 30px;
+    height: 29px;
+    z-index: 1000; }
+    .figure .figure-callout.top {
+      top: -9px; }
+    .figure .figure-callout.right {
+      right: -5px; }
+
+.figure-caption {
+  margin: 0 10px 20px 0;
+  font-size: 14px;
+  line-height: 20px;
+  font-style: italic; }
+
+/* rows of figures */
+.figure-row {
+  font-size: 0;
+  line-height: 0;
+  /* to prevent space between figures */ }
+  .figure-row .figure {
+    display: inline-block;
+    vertical-align: top; }
+  .figure-row .figure + .figure {
+    margin-left: 10px;
+    /* reintroduce space between figures */ }
+
+/* video  containers */
+.framed-galaxynexus-land-span-13 {
+  background: transparent url(../images/styles/device_galaxynexus_blank_land_span13.png) no-repeat
+scroll top left;
+  padding: 42px 122px 62px 126px;
+  overflow: hidden; }
+  .framed-galaxynexus-land-span-13, .framed-galaxynexus-land-span-13 video,
+.framed-galaxynexus-land-span-13 img {
+    width: 512px;
+    height: 286px; }
+
+.framed-galaxynexus-port-span-9 {
+  background: transparent url(../images/styles/device_galaxynexus_blank_port_span9.png) no-repeat
+scroll top left;
+  padding: 95px 122px 107px 124px;
+  overflow: hidden; }
+  .framed-galaxynexus-port-span-9, .framed-galaxynexus-port-span-9 video,
+.framed-galaxynexus-port-span-9 img {
+    width: 274px;
+    height: 488px; }
+
+.framed-galaxynexus-port-span-5 {
+  background: transparent url(../images/styles/device_galaxynexus_blank_port_span5.png) no-repeat
+scroll top left;
+  padding: 75px 31px 76px 33px;
+  overflow: hidden; }
+  .framed-galaxynexus-port-span-5, .framed-galaxynexus-port-span-5 video,
+.framed-galaxynexus-port-span-5 img {
+    width: 216px;
+    height: 384px; }
+
+/* landing page disclosures */
+.landing-page-link {
+  text-decoration: none;
+  font-weight: 500;
+  color: #333333; }
+  .landing-page-link:after {
+    content: '';
+    background: transparent url(../images/styles/disclosure_right.png) no-repeat scroll 50% 50%;
+    width: 10px;
+    height: 10px;
+    display: inline-block;
+    margin-left: 5px; }
+
+/* tooltips */
+.tooltip-box {
+  position: absolute;
+  background-color: rgba(0, 0, 0, 0.9);
+  border-radius: 2px;
+  font-size: 14px;
+  line-height: 20px;
+  color: #fff;
+  padding: 6px 10px;
+  max-width: 250px;
+  z-index: 10000; }
+  .tooltip-box.below:after {
+    position: absolute;
+    content: '';
+    line-height: 0;
+    display: block;
+    top: -10px;
+    left: 5px;
+    border: 5px solid transparent;
+    border-bottom-color: rgba(0, 0, 0, 0.9); }
+
+/* video note */
+.video-instructions {
+  margin-top: 10px;
+  margin-bottom: 10px; }
+  .video-instructions:before {
+    content: '';
+    background: transparent url(../images/styles/ico_movie_inline.png) no-repeat scroll top left;
+    display: inline-block;
+    width: 12px;
+    height: 12px;
+    margin-right: 8px; }
+  .video-instructions:after {
+    content: 'Click device screen to replay movie.'; }
+
+/* download buttons */
+.download-button {
+  display: block;
+  margin-bottom: 5px;
+  text-decoration: none;
+  background-color: #33b5e5;
+  color: #fff !important;
+  font-weight: 500;
+  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.12);
+  padding: 6px 12px;
+  border-radius: 2px; }
+  .download-button:hover, .download-button:focus {
+    background-color: #0099cc;
+    color: #fff !important; }
+  .download-button:active {
+    background-color: #006699; }
+
+/* UI tables and other things found in Writing style and Settings pattern */
+.ui-table {
+  width: 100%;
+  background-color: #282828;
+  color: #fff;
+  border-radius: 2px;
+  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);
+  border-collapse: separate; }
+  .ui-table th,
+  .ui-table td {
+    padding: 5px 10px;
+    background-color: inherit; 
+    border:0;}
+  .ui-table thead th {
+    font-weight: bold; }
+  .ui-table tfoot td {
+    border-top: 1px solid #494949;
+    border-right: 1px solid #494949;
+    text-align: center; }
+    .ui-table tfoot td:last-child {
+      border-right: 0; }
+
+.layout-with-list-item-margins {
+  margin-left: 30px !important; }
+
+.emulate-content-left-padding {
+  margin-left: 10px; }
+
+.do-dont-label {
+  margin-bottom: 10px;
+  padding-left: 20px;
+  background: transparent none no-repeat scroll 0px 3px; }
+  .do-dont-label.bad {
+    background-image: url(../images/styles/ico_wrong.png); }
+  .do-dont-label.good {
+    background-image: url(../images/styles/ico_good.png); }
+    
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/***** PREVIOUSLY style.css ******************/
+
+
+
+
+
+@media screen, projection, print {
+[dir='rtl'] {
+    direction: rtl;
+}
+html {
+    line-height: 20px;
+}
+pre, table, input, textarea, code {
+    font-size: 1em;
+}
+address, abbr, cite {
+    font-style: normal;
+}
+[dir='rtl'] th {
+    text-align: right;
+}
+html[lang^=ja] blockquote, html[lang^=ja] q, html[lang^=ko] blockquote, html[lang^=ko] q,
+html[lang^=zh] blockquote, html[lang^=zh] q {
+    font-style: normal;
+}
+q {
+    font-style: italic;
+}
+fieldset, iframe, img {
+    border: 0;
+}
+img { 
+	-ms-interpolation-mode: bicubic;
+	vertical-align: middle;
+	max-width: 100%;
+}
+q {
+    quotes: none;
+}
+sup, sub {
+    font-size: 11px;
+    line-height: 0;
+}
+}
+
+@media screen, projection {
+
+table, fieldset {
+    margin: 0;
+}
+h1 {
+    color:#333;
+    font-size: 22px;
+    margin: 20px 0 20px;
+    padding:0 0 10px;
+}
+h1, h2 {
+    line-height: 32px;
+}
+h1.short {
+  margin-right:320px;
+}
+h1.short {
+  margin-right:320px;
+}
+h1.super {
+    font-size: 37px;	
+}
+h2 {
+    color:#333;
+    font-size: 20px;
+    margin: 20px 0 20px;
+    padding:0;
+}
+h3 {
+    color:#333;
+    font-size: 18px;
+}
+h3, h4 {
+    color:#333;
+    line-height: 20px;
+    margin: 10px 0;
+}
+h4 {
+	font-size: 16px;
+}
+h5 {
+	font-size: 14px;	
+}
+h5, h6 {
+	margin: 5px 0;
+}
+h6 {
+	font-size: 12px;	
+}
+hr { /* applied to the bottom of h2 elements */
+	height: 1px;
+	margin: 5px 0 20px;
+	border: 0;
+	background: #ccc;
+}
+p, pre, table, form {
+    margin: 0 0 15px;
+}
+small {
+	font-size: 11.5px;
+	color: #000;
+}
+ul, ol {
+    margin: 0 0 15px 18px;
+    padding: 0;
+}
+[dir='rtl'] ul, [dir='rtl'] ol {
+    margin: 10px 30px 10px 10px;
+}
+ul ul, ul ol, ol ul, ol ol {
+    margin-bottom: 0;
+    margin-top: 0;
+}
+li {
+  margin:0 0 4px;
+}
+dd {
+  margin:0 0 10px 30px;
+}
+dd p {
+  margin:10px 0 0;
+}
+ul p,
+ol p {
+  margin:10px 0 0;
+}
+pre strong, pre b, a strong, a b, a code {
+    color: inherit;
+}
+pre, code {
+    color: #060;
+    font: 14px/1.5 'courier new', courier, monospace;
+}
+code {
+    font-weight:bold;
+}
+
+legend {
+    display: none;
+}
+a:link, a:visited {
+  color: #258aaf;
+  text-decoration: none;
+}
+a:focus, a:hover, a:active {
+  color: #33B5E5;
+  text-decoration: none;
+}
+strong, b {
+  font-weight:bold;
+  color: #222;
+}
+table {
+  border-collapse: collapse;
+  border-spacing: 0;
+  border:0;
+  margin: .5em 1em 1em 0;
+  width:100%; /* consistent table widths; within IE's quirks */
+  background-color:#f7f7f7;
+}
+th, td {
+  padding: 4px 12px;
+  vertical-align: top;
+  text-align: left;
+}
+td {
+  background-color:inherit;
+  border:solid 1px #DDD;
+}
+th {
+  background-color: #999;
+  color: #fff;
+  border:solid 1px #DDD;
+  font-weight: normal;
+}
+tr:first-of-type th:first-of-type:empty {
+    visibility: hidden;
+}
+/* --------------------------------------------------------------------------
+Footer
+*/
+.line {
+    clear: both;
+    background: #acbc00;
+    background: -moz-linear-gradient(top, #acbc00 0, #acbc00 50%, #bdde00 50%, #bdde00 100%);
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #acbc00),
+color-stop(50%, #acbc00), color-stop(50%, #bdde00), color-stop(100%, #bdde00));
+    background: -webkit-linear-gradient(top, #acbc00 0, #acbc00 50%, #bdde00 50%, #bdde00 100%);
+    background: -o-linear-gradient(top, #acbc00 0, #acbc00 50%, #bdde00 50%, #bdde00 100%);
+    background: -ms-linear-gradient(top, #acbc00 0, #acbc00 50%, #bdde00 50%, #bdde00 100%);
+    background: linear-gradient(top, #acbc00 0, #acbc00 50%, #bdde00 50%, #bdde00 100%);
+    height: 2px;
+    margin-top: 150px;
+    position: relative;
+    z-index: 11;
+}
+#footer {
+    font-size:11px;
+    clear: both;
+    color: #999;
+    padding: 15px 0;
+    margin-top:10px;
+    width:auto;
+}
+#footer-local ul {
+	list-style: none;
+	margin: 5px 0 30px 0;
+}
+#footer-local li {
+    display: inline;
+}
+#footer-local li+li:before {
+    content: '|';
+    padding: 0 3px;
+	color: #e5e5e5;
+}
+#footer-global {
+    padding: 10px 15px;
+	background: #f5f5f5;
+}
+#footer-global {
+    border-top: 1px solid #ebebeb;
+    font-size: 11.5px;
+    line-height: 1.8;
+    list-style: none;
+}
+#footer-global ul {
+    margin: 0;
+}
+#footer-global li {
+    display: inline;
+    font-weight: bold;
+}
+#footer-global li+li:before {
+    content: '¬?';
+    padding: 0 3px;
+}
+* html #footer-global li {
+    margin: 0 13px 0 0;
+}
+* [dir='rtl'] #footer-global li {
+    margin: 0 0 0 13px;
+}
+*+html #footer-global li {
+    margin: 0 13px 0 0;
+}
+*+[dir='rtl'] #footer-global li {
+    margin: 0 0 0 13px;
+}
+#footer-global li a {
+    font-weight: normal;
+}
+.locales {
+  margin: 10px 0 0 0px;
+}
+[dir='rtl'] .locales {
+    background-position: right center;
+    float: left;
+    padding: 0 24px 0 0;
+}
+.locales form {
+    margin: 0;	
+}
+.locales select, .sites select {
+  line-height: 3.08;
+  margin: 0px 0;
+  border: solid 1px #EBEBEB;
+  -webkit-appearance: none;
+  background: white url('../images/arrows-up-down.png') right center no-repeat;
+  height: 30px;
+  color: #222;
+  line-height: normal;
+  padding: 5px;
+  width: 230px;
+}
+}
+
+/* =============================================================================
+   Print Only
+   ========================================================================== */
+@media print {
+a {
+    color: inherit;
+}
+.nav-x, .nav-y {
+    display: none;
+}
+.str { color: #060; }
+.kwd { color: #006; font-weight: bold; }
+.com { color: #600; font-style: italic; }
+.typ { color: #404; font-weight: bold; }
+.lit { color: #044; }
+.pun { color: #440; }
+.pln { color: #000; }
+.tag { color: #006; font-weight: bold; }
+.atn { color: #404; }
+.atv { color: #060; }
+}
+
+/* =============================================================================
+   Columns
+   ========================================================================== */
+
+@media screen, projection, print {
+.full {
+	padding: 2.5em 0;
+	border-top: solid 1px #ddd;
+	border-bottom: solid 1px #ddd;
+	background: #f7f7f7;	
+}
+.wrap {
+	margin: 0 auto;
+	width: 940px;
+	clear: both;
+}
+.cols {
+    height: 1%;
+    margin: 0 -1.533742331288343558282%;
+    width: 103.06748466257669%}
+*+html .cols {
+    margin-bottom: 20px;
+}
+.cols:after {
+    clear: both;
+    content: ' ';
+    display: block;
+    height: 0;
+    visibility: hidden;
+}
+.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12,
+.col-13, .col-14, .col-15, .col-16 {
+    display: inline;
+	float: left;
+	margin-left: 10px;
+	margin-right: 10px;
+}
+/*
+* html .col-1, * html .col-2, * html .col-3, * html .col-4, * html .col-5, * html .col-6, * html
+.col-7, * html .col-8, * html .col-9, * html .col-10, * html .col-11, * html .col-12  {
+    margin: 0;
+    padding: 0 1.4% 20px;
+}
+[dir='rtl'] .col-1, [dir='rtl'] .col-2, [dir='rtl'] .col-3, [dir='rtl'] .col-4, [dir='rtl'] .col-5,
+[dir='rtl'] .col-6, [dir='rtl'] .col-7, [dir='rtl'] .col-8, [dir='rtl'] .col-9, [dir='rtl'] .col-10,
+[dir='rtl'] .col-11, [dir='rtl'] .col-12 {
+    float: right;
+}
+*/
+.col-1 { width: 40px }
+.col-2 { width: 100px }
+.col-3 { width: 160px }
+.col-4 { width: 220px }
+.col-5 { width: 280px }
+.col-6 { width: 340px }
+.col-7 { width: 400px }
+.col-8 { width: 460px }
+.col-9 { width: 520px }
+.col-10 { width: 580px }
+.col-11 { width: 640px }
+.col-12 { width: 700px }
+.col-13 { width: 760px }
+.col-14 { width: 820px }
+.col-15 { width: 880px }
+.col-16 { width: 940px }
+}
+
+.col-right {
+  margin-right:0px;
+}
+
+@media screen and (max-width:772px) {
+.col-5, .col-6, .col-7 {
+    clear: both;
+    width: 97.0238096%}
+}
+
+/* =============================================================================
+   Layout
+   ========================================================================== */
+@media screen, projection, print {
+
+/* --------------------------------------------------------------------------
+Header, Login, Nav-X, Search
+*/
+#header {
+	padding: 2.2em 0 0.2em 0;
+}
+#header:before, #header:after {
+	content: "";
+	display: table;
+	clear: both
+}
+.logo, .nav-x {
+    float: left;
+}
+.nav-x {
+    margin-top: -2px;
+	list-style-type: none;
+}
+.nav-x a {
+    color: #333;
+    font-size: 16px;
+}
+.design a.selected {
+    color: #33b5e5;
+}
+.develop a.selected {
+    color: #F80;
+}
+.distribute a.selected {
+    color: #9C0;
+}
+
+
+
+.nav-x li {
+    display: inline;
+    margin-right: 45px;
+}
+.search {
+	float: right;
+	position: relative;
+	width: 220px
+}
+.search .bottom, .search .left, .search .right {
+	position: absolute;
+	background-color: #a3a3a3;
+}
+.search .bottom {
+	width: 220px;
+	height: 1px;
+	top: 24px;
+	left: 0
+}
+.search .left, .search .right {	
+	height: 5px;
+	width: 1px
+}
+.search .left {	top: 19px; left: 0 }
+.search .right { top: 19px; right: 0 }
+.search form {
+	float: left;
+	margin-top: 2px;
+	width: inherit;
+}
+.search .close,
+#player-frame .close {
+  position: absolute;
+  right: 8px;
+  bottom: 4px;
+  width: 16px;
+  height: 16px;
+  margin: 0;
+  text-indent: -1000em;
+  background: url(../images/close.png) no-repeat 0 0;
+  z-index:9999;
+}
+.search .close:hover, .search .close:focus,
+#player-frame .close:hover, #player-frame .close:focus {
+  background-position: -16px 0;
+  cursor:pointer;
+}
+#player-frame .close {
+  top: 6px;
+}
+.search form input {
+	color: #999;
+	font-size: 1em;
+	width: inherit;
+	border: none;
+	margin: 0;
+	padding:0 0 0 6px;
+	z-index: 1500;
+	background-color: transparent
+}
+.search:hover .bottom, .search:hover .left, .search:hover .right {
+	background-color: #33b5e5;
+}
+.search:hover .icon {
+	background-position: -8px 0
+}
+.search form input:focus {
+	color: #222;
+	font-weight: bold;
+	outline:0;
+}
+/* Search Dropdown */
+.search-dropdown {
+	padding: 15px;
+	width: 192px;
+	border: solid 1px #c5c5c5;
+	background: #fff;
+	position: absolute;
+	top: 35px;
+	left: 0;
+	-moz-box-shadow: 0 0 10px rgba(0,0,0,0.2);
+	-webkit-box-shadow: 0 0 10px rgba(0,0,0,0.2);
+	box-shadow: 0  0 10px rgba(0,0,0,0.2)
+}
+.search-dropdown ul, .search-dropdown ul li {
+	list-style-type: none;
+	margin: 0;
+	padding: 0
+}
+.search-dropdown ul li {
+	clear: both	
+}
+.search-dropdown img {
+	float: left;
+	margin: 0 10px 10px 0
+}
+.search-dropdown h6 {
+	color: #222;
+	margin: 0;
+	line-height: normal
+}
+.search-dropdown .desc {
+	color: #999;
+	font-size: 11.5px;
+	line-height: normal;
+	margin: 0;
+}
+.search-dropdown li a:hover h6, .search-dropdown li a:hover .desc {
+	color: #33b5e5
+}
+/* --------------------------------------------------------------------------
+Buttons
+*/
+.button, a.button, .button-secondary, a.button-secondary {
+	border-image: initial;
+    -webkit-border-radius: 2px;
+    -moz-border-radius: 2px;
+    border-radius: 2px;
+    cursor: pointer;
+}
+.button, a.button {
+    background-color: #09c;
+    background-image: -webkit-gradient(linear, left top, left bottom, from(#2faddb), to(#09c));
+    background-image: -webkit-linear-gradient(top, #2faddb, #09c);
+    background-image: -moz-linear-gradient(top, #2faddb, #09c);
+    background-image: -ms-linear-gradient(top, #2faddb, #09c);
+    background-image: -o-linear-gradient(top, #2faddb, #09c);
+    background-image: linear-gradient(top, #2faddb, #09c);
+    filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#2faddb', EndColorStr='#0099cc',GradientType=0);
+    border: 1px solid #3990ab;
+    color: #fff;
+}
+.button-secondary, a.button-secondary {
+    background-color: #f3f3f3;
+    border: 1px solid #dcdcdc;
+    color: #444;
+}
+a.button, a.button:visited, a.button-secondary, a.button-secondary:visited {
+    height: 28px;
+    line-height: 28px;
+    margin-right: 16px;
+	font-weight: 400;
+    min-width: 54px;
+    outline: 0;
+    padding: 8px 15px;
+    text-align: center;
+}
+.button, .button-secondary {
+    height: 34px;
+    line-height: 34px;
+    margin-right: 16px;
+	font-weight: 400;
+    min-width: 54px;
+    outline: 0;
+    padding: 0 15px;
+    text-align: center;
+}
+.button:hover, a.button:hover {
+    border-color: #09c;
+    background-color: #4cadcb;
+    background-image: -webkit-gradient(linear, left top, left bottom, from(#5dbcd9), to(#4cadcb));
+    background-image: -webkit-linear-gradient(top, #5dbcd9, #4cadcb);
+    background-image: -moz-linear-gradient(top, #5dbcd9, #4cadcb);
+    background-image: -ms-linear-gradient(top, #5dbcd9, #4cadcb);
+    background-image: -o-linear-gradient(top, #5dbcd9, #4cadcb);
+    background-image: linear-gradient(top, #5dbcd9, #4cadcb);
+    filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#5dbcd9',
+EndColorStr='#4cadcb',GradientType=0);
+    color: #fff !important;
+}
+.button:active, a.button:active {
+    background-color: #1e799a;
+    background-image: none;
+    border-color: #30b7e6;
+}
+.button-secondary:hover, a.button-secondary:hover {
+    border-color: #dbdbdb;
+    background-color: #f3f3f3;
+    background-image: -webkit-gradient(linear, left top, left bottom, from(#f9f9f9), to(#ececec));
+    background-image: -webkit-linear-gradient(top, #f9f9f9, #ececec);
+    background-image: -moz-linear-gradient(top, #f9f9f9, #ececec);
+    background-image: -ms-linear-gradient(top, #f9f9f9, #ececec);
+    background-image: -o-linear-gradient(top, #f9f9f9, #ececec);
+    background-image: linear-gradient(top, #f9f9f9, #ececec);
+    filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#f9f9f9',
+EndColorStr='#ececec');
+    color: #33B5E5 !important;
+}
+.button-secondary:active, a.button-secondary:active {
+    border-color: #dadada;
+	background: #ebebeb; /* Old browsers */
+	/* IE9 SVG, needs conditional override of 'filter' to 'none' */
+	background:
+url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/
+Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0Jv
+eD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+
+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIg
+eDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ViZWJl
+YiIgc3RvcC1vcGFjaXR5PSIxIi8+
+CiAgICA8c3RvcCBvZmZzZXQ9IjEwJSIgc3RvcC1jb2xvcj0iI2Y5ZjlmOSIgc3RvcC1vcGFjaXR5PSIxIi8+
+CiAgICA8c3RvcCBvZmZzZXQ9IjUwJSIgc3RvcC1jb2xvcj0iI2ZhZmFmYSIgc3RvcC1vcGFjaXR5PSIxIi8+
+CiAgICA8c3RvcCBvZmZzZXQ9IjkwJSIgc3RvcC1jb2xvcj0iI2Y5ZjlmOSIgc3RvcC1vcGFjaXR5PSIxIi8+
+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmNmY2ZjYiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFy
+R3JhZGllbnQ+
+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIg
+Lz4KPC9zdmc+);
+	background: -moz-linear-gradient(top,  #ebebeb 0%, #f9f9f9 5%, #fafafa 50%, #f9f9f9 90%,
+#ffffff 100%); /* FF3.6+ */
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ebebeb),
+color-stop(5%,#f9f9f9), color-stop(50%,#fafafa), color-stop(90%,#f9f9f9), color-stop(100%,#ffffff));
+/* Chrome,Safari4+ */
+	background: -webkit-linear-gradient(top,  #ebebeb 0%,#f9f9f9 5%,#fafafa 50%,#f9f9f9
+90%,#ffffff 100%); /* Chrome10+,Safari5.1+ */
+	background: -o-linear-gradient(top,  #ebebeb 0%,#f9f9f9 5%,#fafafa 50%,#f9f9f9 90%,#ffffff
+100%); /* Opera 11.10+ */
+	background: -ms-linear-gradient(top,  #ebebeb 0%,#f9f9f9 5%,#fafafa 50%,#f9f9f9 90%,#ffffff
+100%); /* IE10+ */
+	background: linear-gradient(top,  #ebebeb 0%,#f9f9f9 5%,#fafafa 50%,#f9f9f9 90%,#ffffff
+100%); /* W3C */
+	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ebebeb',
+endColorstr='#ffffff',GradientType=0 ); /* IE6-8 */
+	-webkit-box-shadow: inset 0px 0px 5px 2px rgba(0, 0, 0, .05);
+	-moz-box-shadow: inset 0px 0px 5px 2px rgba(0, 0, 0, .05);
+	box-shadow: inset 0px 0px 5px 2px rgba(0, 0, 0, .05); 
+	color: #258AAF !important;
+}
+.button.big {
+  font-size:20px;
+  display:inline-block;
+}
+
+.button.disabled,
+.button.disabled:hover,
+.button.disabled:active {
+  background:#ebebeb;
+  color:#999;
+  border-color:#999;
+  cursor:default;
+}
+
+.training-nav-top a.button-secondary,
+.training-nav-bottom a.button-secondary {
+  display:block;
+  float:left;
+  margin:0;
+  width:130px;
+  text-transform:uppercase;
+  font-weight:bold;
+  
+    background-color: #f3f3f3;
+    background-image: -webkit-gradient(linear, left top, left bottom, from(#f9f9f9), to(#ececec));
+    background-image: -webkit-linear-gradient(top, #f9f9f9, #ececec);
+    background-image: -moz-linear-gradient(top, #f9f9f9, #ececec);
+    background-image: -ms-linear-gradient(top, #f9f9f9, #ececec);
+    background-image: -o-linear-gradient(top, #f9f9f9, #ececec);
+    background-image: linear-gradient(top, #f9f9f9, #ececec);
+    filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#f9f9f9',
+EndColorStr='#ececec');
+    color: #33B5E5;
+}
+
+.training-nav-top a.button-secondary:hover,
+.training-nav-bottom a.button-secondary:hover {
+    background-color: #09c;
+    background-image: -webkit-gradient(linear, left top, left bottom, from(#2faddb), to(#09c));
+    background-image: -webkit-linear-gradient(top, #2faddb, #09c);
+    background-image: -moz-linear-gradient(top, #2faddb, #09c);
+    background-image: -ms-linear-gradient(top, #2faddb, #09c);
+    background-image: -o-linear-gradient(top, #2faddb, #09c);
+    background-image: linear-gradient(top, #2faddb, #09c);
+    filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#2faddb', EndColorStr='#09c');
+    border: 1px solid #3990ab;
+    color: #fff !important;
+}
+
+.training-nav-top a.button-secondary.last,
+.training-nav-bottom a.button-secondary.last {
+  border-left:0;
+}
+
+.training-nav-top a.button-secondary.double-size,
+.training-nav-bottom a.button-secondary.double-size {
+  width:291px;
+}
+
+.training-nav-top,
+.training-nav-bottom {
+  float:right;
+  margin:0 0 0 20px;
+}
+
+.training-nav-bottom {
+  padding:0 0 20px;
+}
+
+#tb-wrapper,
+#qv-wrapper {
+  float:right;
+  clear:right;
+  margin:-27px 0 0 20px; /* negative top-margin to counter the content-header bottom margin */
+  padding:0 0 20px;
+}
+
+#tb,
+#qv {
+  font-size:13px;
+  line-height:18px;
+  width:238px;
+  border:1px solid #ccc;
+  float:right;
+}
+
+#tb {
+  width:278px;
+}
+
+#tb h2,
+#qv h2 {
+  margin:10px 15px;
+  padding:0;
+  text-transform:uppercase;
+  border-bottom:1px solid gainsboro;
+}
+
+#tb *,
+#qv * {
+  font-size:inherit;
+}
+
+#tb .download-box {
+  padding:0 0 0 15px;
+}
+
+#tb .download-box .filename {
+  font-size:11px;
+  margin:4px 4px 10px;
+  color:#666;
+}
+
+
+/* Dev guide quicknav */
+
+.sidebox-wrapper {
+  float:right;
+  clear:right;
+  margin:0 0 0 20px;
+  padding:0 0 20px;
+}
+
+.sidebox {
+  width:226px;
+  font-size:13px;
+  line-height:18px;
+  border-left:4px solid #99CC00;
+  float:right;
+  padding:0 0 0 10px;
+}
+
+.sidebox h2,
+.sidebox h3,
+.sidebox h4,
+.sidebox h5 {
+  font-weight:bold;
+  margin:0 0 10px;
+}
+
+.sidebox * {
+  font-size:inherit;
+}
+
+#tb ol,
+#tb ul,
+#qv ul {
+  margin:0 15px 10px 35px;
+}
+
+#qv ol {
+  list-style:none;
+  margin:0 15px 15px;
+  font-size:inherit;
+  line-height:inherit;
+}
+
+#tb ol ol,
+#tb ul ul,
+#qv ol ol,
+#qv ul ul,
+.sidebox ol ol,
+.sidebox ul ul {
+  margin-bottom:0;
+}
+
+#qv ol ol {
+  margin:3px 0 3px 15px;
+}
+
+.sidebox p,
+#qv p,
+#tb p {
+  margin: 0 0 10px;
+}
+
+
+/* --------------------------------------------------------------------------
+Form
+*/
+.article form {
+    margin: 0 0 20px;
+}
+.article form .form-required {
+    color: #dd4b39;
+}
+.article form fieldset {
+    margin: 0 0 20px;
+    padding: 0;
+}
+.article form legend {
+    display: block;
+    line-height: 1.5;
+    margin: 0;
+    padding: 0;
+}
+/*
+.article form ol, .article form ul {
+    margin: 0 0 0 1em;
+    padding: 0 0 0 1em;
+}
+[dir='rtl'] .article form ol, [dir='rtl'] .article form ul {
+    margin: 0 1em 0 0;
+    padding: 0 1em 0 0;
+}
+.article form ol ul, .article form ul ul, [dir='rtl'] .article form ol ul, [dir='rtl'] .article form
+ul ul {
+    list-style: none;
+    margin: 0;
+    padding: 0;
+}
+.article form li {
+    margin: 0 0 20px;
+}
+.article form li li {
+    margin: 0 0 5px;
+}
+*/
+.article form label {
+    display: block;
+    margin: 0 0 5px;
+    padding: 0;
+}
+.article form input[type='text'], .article form select, .article form textarea, .article form
+.checkbox-group, .article form .radio-group {
+    margin-bottom: 15px;
+}
+.checkbox-group input {
+	width: 13px;
+	height: 13px;
+	background: #fff;
+	border: solid 1px #c6c6c6;
+	float: left;
+}
+.article form .checkbox-group, .article form .radio-group {
+	display: block
+}
+.article form select {
+    border: solid 1px #ebebeb;
+    border-top-color: #ddd;
+    -webkit-appearance: none;
+    background: #f3f3f3 url(../images/arrows-up-down.png) right center no-repeat;
+    height: 30px;
+    color: #222;
+    line-height: normal;
+    padding: 5px;
+    width: 130px;
+}
+    
+.article form .browse .browse-msg {
+	font-size: 11.5px;	
+}
+.article form .browse .button-secondary {
+	height: auto;
+	line-height: 25px;
+	font-size: 11px;
+	padding: 0 8px;
+	margin: 0 10px 15px 0;
+}
+.article form input[type='text'], .article form textarea {
+    border: 1px solid #ebebeb;
+    border-top-color: #dcdcdc;
+    color: #222;
+    line-height: normal;
+    padding: 6px 10px;
+    width: 300px;	
+}
+.article form textarea {
+    height: 150px;
+}
+.article form input[type='text']:focus, .article form textarea:focus {
+    border-color: #33B5E5;
+    -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .2);
+    -o-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .2);
+    -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .2);
+    box-shadow: inset 0 1px 2px rgba(0, 0, 0, .2);
+    outline: 0;
+}
+.article form input[disabled], .article form textarea[disabled], .article form label.form-disabled {
+    color: #999;
+}
+.article form input[type='text'][disabled], .article form textarea[disabled] {
+    background-color: #ebebeb;
+}
+form .form-error input[type='text'], form .form-error textarea {
+    border-color: #dd4b39;
+	margin-right: 20px;
+}
+.aside {
+    -moz-border-radius: 2px;
+    -webkit-border-radius: 2px;
+    border-radius: 2px;
+    margin: 10px 0;
+    padding: 20px;
+	color: #666;
+    position: relative;
+	background: #f9f9f9;
+}
+/*
+.aside, .notification, .promo {
+    -moz-border-radius: 2px;
+    -webkit-border-radius: 2px;
+    border-radius: 2px;
+    margin: 10px 0;
+    padding: 10px;
+    position: relative;
+}
+.aside>:first-child, .notification>:first-child, .promo>:first-child {
+    margin-top: 0;
+}
+.aside>:last-child, .notification>:last-child, .promo>:last-child {
+    margin-bottom: 0;
+}
+.aside {
+    background: #f9f9f9;
+}
+.notification {
+    background: #fffbe4;
+    border-color: #f8f6e6;
+}
+.promo {
+    background: #f6f9ff;
+    border-color: #eff2f9;
+}
+*/
+/* --------------------------------------------------------------------------
+Code Style
+*/
+pre {
+	margin: 1em 0;
+	padding: 1em;
+	overflow: auto;
+	border: solid 1px #ddd;
+	background: #f7f7f7;	
+}
+.str { color: #080; }
+.kwd { color: #008; }
+.com { color: #800; }
+.typ { color: #606; }
+.lit { color: #066; }
+.pun { color: #660; }
+.pln { color: #000; }
+.tag { color: #008; }
+.atn { color: #828; }
+.atv { color: #080; }
+.dec { color: #606; }
+
+/* --------------------------------------------------------------------------
+Three-Pane
+*/
+/* Package Nav & Classes Nav */
+.three-pane {
+	position: relative;
+	border-top: solid 1px #ebebeb;
+}
+#packages-nav .js-pane,
+#classes-nav .js-pane {
+  overflow:visible;
+}
+#packages-nav {
+        height:270px;
+	max-height: inherit;
+	overflow: hidden;
+	position: relative;	
+}
+#classes-nav {
+	overflow: hidden;
+	position: relative;	
+}
+#packages-nav ul, #classes-nav ul {
+	list-style-type: none;
+	margin: 10px 0 20px 0;
+	padding: 0;	
+}
+#classes-nav li {
+	font-weight: bold;
+	margin: 5px 0;
+}
+#packages-nav li,
+#classes-nav li li {
+	margin: 0;
+}
+#packages-nav li a, #packages-nav li a:active, #packages-nav li a:visited,
+#classes-nav li a, #classes-nav li a:active, #classes-nav li a:visited {
+	padding: 0 0 0 4px;
+}
+#packages-nav li a, #packages-nav li a:active, #packages-nav li a:visited,
+#classes-nav li li a, #classes-nav li li a:active, #classes-nav li li a:visited,
+#nav-tree li a, #nav-tree li a:active, #nav-tree li a:visited {
+	color: #222;
+	font-weight: normal;	
+}
+#packages-nav li a, #packages-nav li a:active, #packages-nav li a:visited,
+#classes-nav li li a, #classes-nav li li a:active, #classes-nav li li a:visited {
+	display: block;
+}
+#packages-nav li.selected a, #packages-nav li.selected a:active, #packages-nav li.selected
+a:visited,
+#classes-nav li li.selected a, #classes-nav li li.selected a:active, #classes-nav li li.selected
+a:visited,
+#nav-tree li div.selected {
+    font-weight: 500;
+    color: #0099cc;
+    background-color:#fff; }
+  #packages-nav li.selected ul li a,
+  #classes-nav li.selected ul li a {
+  /* don't highlight child items */
+    color: #555555; }
+#nav-tree li div.selected a {
+    font-weight: 500;
+    color: #0099cc;
+}
+#nav-swap {
+  height:30px;
+  border-top:1px solid #ccc;
+}
+#nav-swap a {
+  display:inline-block;
+  height:100%;
+  color: #222;
+  font-size: 12px;
+  padding: 5px 0 5px 5px;
+}
+
+#nav-swap .fullscreen {
+  float: right;
+  width: 24px;
+  height: 24px;
+  text-indent: -1000em;
+  padding:0;
+  margin:3px 5px 0;
+  background: url(../images/fullscreen.png) no-repeat -24px 0;
+}
+#nav-swap .fullscreen.disabled {
+  background-position: 0 0;
+}
+#nav-swap .fullscreen:hover, 
+#nav-swap .fullscreen:focus {
+  cursor:pointer;
+}
+
+
+/* nav tree */
+#side-nav, #devdoc-nav, #swapper,
+#nav-tree, #tree-list {
+  overflow:hidden;
+  margin-left:0;
+}
+
+#nav-tree ul {
+  list-style:none;
+  padding:0;
+  margin:10px 0;
+}
+
+#nav-tree ul li div {
+  padding:0 0 0 4px;
+}
+
+#side-nav #nav-tree ul li a,
+#side-nav #nav-tree ul li span.no-children {
+  padding: 0;
+  margin: 0;
+}
+
+#nav-tree .plus {
+  margin: 0 3px 0 0;
+}
+
+#nav-tree ul ul {
+  list-style: none;
+  margin: 0;
+  padding: 0 0 0 0;
+}
+
+#nav-tree ul li {
+  margin: 0;
+  padding: 0 0 0 0;
+  white-space: nowrap;
+}
+
+#nav-tree .children_ul {
+  padding:0;
+  margin:0;
+}
+#nav-tree .children_ul li div {
+  padding:0 0 0 10px;
+}
+#nav-tree .children_ul .children_ul li div {
+  padding:0 0 0 20px;
+}
+
+#nav-tree a.nolink {
+  color: #222;
+  text-decoration: none;
+}
+
+#nav-tree span.label {
+  width: 100%;
+}
+
+#nav-tree {
+  overflow-x: auto;
+  overflow-y: scroll;
+  outline:0;
+}
+
+
+/* Content */
+#doc-col {
+  margin-right:0;
+}
+#doc-content-container {
+	margin-left: 291px	
+}
+#doc-header, #doc-content {
+	padding: 1em 2em;
+}
+#doc-header {
+	background: #f7f7f7;	
+}
+#doc-header h1 {
+	line-height: 0;
+	margin-bottom: 15px;
+}
+#api-info-block {
+	float: right;
+	font-weight: bold;
+}
+#api-info-block a, #api-info-block a:active, #api-info-block a:visited {
+	color: #222;
+}
+#api-info-block a:hover, #api-info-block a:focus {
+	color: #33B5E5;
+}
+#api-nav-header {
+  height:19px; /* plus 16px padding = 35; same as #nav li */
+  font-size:14px;
+  padding: 8px 0;
+  margin: 0;
+  border-bottom: 1px solid #CCC;
+  background:#e9e9e9;
+  background: rgba(0, 0, 0, 0.05); /* matches #nav li.expanded */
+
+}
+#api-nav-title {
+  padding:0 5px;
+  white-space:nowrap;
+}
+
+#api-level-toggle {
+  float:right;
+  padding:0 5px;
+}
+
+#api-level-toggle label {
+  margin:0;
+  vertical-align:top;
+  line-height: 19px;
+  font-size:13px;
+  height: 19px;
+}
+
+#api-level-toggle .select-wrapper {
+  width: 35px;
+  display: inline-block;
+  overflow: hidden;
+}
+#api-level-toggle select {
+  border: 0;
+  appearance:none;
+  -moz-appearance:none;
+  -webkit-appearance: none;
+  background: transparent url(../images/arrows-up-down.png) 23px 5px no-repeat;
+  color: #222;
+  height: 19px;
+  line-height: 19px;
+  padding: 0;
+  margin:1px 0 0 0;
+  width:150%;
+  font-size:13px;
+  vertical-align:top;
+  outline:0;
+}
+
+
+/* Toggle for revision notes and stuff */
+div.toggle-content.closed .toggle-content-toggleme {
+  display:none;
+}
+
+#jd-content img.toggle-content-img {
+  margin:0 5px 5px 0;
+}
+div.toggle-content > p {
+  padding:0 0 5px;
+}
+
+
+/* API LEVEL FILTERED MEMBERS */
+
+.absent,
+.absent a:link,
+.absent a:visited,
+.absent a:hover,
+.absent * {
+  color:#bbb !important;
+  cursor:default !important;
+  text-decoration:none !important;
+}
+#devdoc-nav li.absent.selected,
+#devdoc-nav li.absent.selected *,
+#devdoc-nav div.label.absent.selected,
+#devdoc-nav div.label.absent.selected * {
+  background-color:#eaeaea !important;
+}
+.absent h4.jd-details-title,
+.absent h4.jd-details-title * {
+  background-color:#f6f6f6 !important;
+}
+.absent img {
+  opacity: .3;
+  filter: alpha(opacity=30);
+  -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
+}
+
+
+
+
+
+
+
+
+
+/* JQUERY RESIZABLE STYLES */
+.ui-resizable { position: relative; }
+.ui-resizable-handle { position: absolute; display: none; font-size: 0.1px; z-index:1; }
+.ui-resizable .ui-resizable-handle { display: block; border-bottom: 1px solid #e4e4e4; }
+/*body .ui-resizable-disabled .ui-resizable-handle { display: none; }
+body .ui-resizable-autohide .ui-resizable-handle { display: none; }*/
+.ui-resizable-s { cursor: s-resize; height: 10px; width: 100% !important; bottom: -11px; left: 0;
+border-bottom: solid 1px #ededed;
+  background: #f7f7f7 url("../images/resizable-s2.png") no-repeat scroll center center; }
+/*
+.ui-resizable-e { 
+cursor: e-resize; width: 10px; right: 0; top: 0; height: 100%; border-right: solid
+1px #ededed;background: #f7f7f7 url("../images/resizable-e2.png") no-repeat scroll center center; }
+*/
+
+/* --------------------------------------------------------------------------
+Lightbox
+*/
+.lightbox {	
+	width: 769px;
+	padding: 1.5em;
+	margin: 0 auto;
+	border: solid 1px #dcdcdc;
+	background: #fff;
+	-moz-box-shadow: 1px 1px 5px rgba(0,0,0,0.1);
+	-webkit-box-shadow: 1px 1px 5px rgba(0,0,0,0.1);
+	box-shadow: 1px 1px 5px rgba(0,0,0,0.1)
+}
+.lightbox .header {
+	float: left;
+	width: 720px;
+	margin: -10px 20px 10px 0;	
+}
+.lightbox .close {
+	float: right;
+	width: 10px;
+	height: 10px;
+	margin: -10px -10px 10px 0;
+	text-indent: -1000em;
+	background: url(../images/close.png) no-repeat 0 0;
+}
+.lightbox .close:hover, .lightbox .close:focus {
+	background-position: -10px 0;
+}
+
+/* --------------------------------------------------------------------------
+Misc
+*/
+
+
+.clearfix:before, .clearfix:after {
+	content: "";
+	display: table
+}
+.clearfix:after {
+	clear: both
+}
+.clearfix {
+	*zoom: 1
+}
+table.blank th, table.blank td {
+    border: 0;
+	background: none
+}
+.caption {
+	margin: 0.5em 0 2em 0;
+	color: #000;
+	font-size: 11.5px;	
+}
+
+.nolist {
+  list-style:none;
+  padding:0;
+  margin:0 0 1em 1em;
+}
+
+.nolist li {
+  padding:0 0 2px;
+  margin:0;
+}
+
+pre.classic {
+  background-color:transparent;
+  border:none;
+  padding:0;
+}
+
+p.img-caption {
+  margin: -10px 0 20px;
+  font-size:13px;
+  color:#666;
+}
+
+div.figure {
+  float:right;
+  clear:right;
+  margin:10px 0 0 0;
+  padding:0 0 0 20px;
+  /* width must be defined w/ an inline style matching the image width */
+}
+
+p.table-caption {
+  margin: 0 0 4px 0; /* matches default table left-margin */
+  font-size:13px;
+  color:#666;
+}
+
+p.note, div.note, 
+p.caution, div.caution, 
+p.warning, div.warning {
+  padding: 0 0 0 10px;
+  border-left: 4px solid;
+}
+
+p.note {
+  border-color: #258AAF;
+}
+
+p.caution {
+  border-color: #FF8800;
+}
+
+p.warning {
+  border-color: #ff4443;
+}
+
+div.note.design {
+  border-left: 4px solid #33B5E5;
+}
+
+div.note.develop {
+  border-left: 4px solid #F80;
+}
+
+div.note.distribute {
+  border-left: 4px solid #9C0;
+}
+
+.note p, .caution p, .warning p {
+  margin:0 0 5px;
+}
+
+.note p:last-child, .caution p:last-child, .warning p:last-child {
+  margin-bottom:0;
+}
+
+blockquote {
+  display:block;
+  float:right;
+  width:280px;
+  font-size:20px;
+  font-style:italic;
+  line-height:24px;
+  color:#33B5E5;
+  margin:0 0 20px 30px;
+}
+
+div.design-announce p {
+  margin:0 0 10px;
+}
+
+#devdoc-nav a.totop {
+  display:block;
+  top:0;
+  width:inherit;
+  background: transparent url(../images/styles/gototop.png) no-repeat scroll 50% 50%;
+  text-indent:-9999em;
+}
+#devdoc-nav a.totop {
+  position:fixed;
+  display:none;
+}
+#devdoc-nav a.totop:hover {
+  background-color:#33B5E5;
+}
+
+.content-footer a.totop {
+  text-transform:uppercase;
+  line-height:30px;
+}
+
+/* -----------------------------------------------
+Dialog box for popup messages 
+*/
+
+div.dialog {
+  height:0;
+  margin:0 auto;
+}
+
+div.dialog>div {
+  z-index:99;
+  position:fixed;
+  margin:70px 0;
+  width: 391px;
+  height: 200px;
+  background: #F7F7F7;
+-moz-box-shadow: 0 0 15px rgba(0,0,0,0.5);
+-webkit-box-shadow: 0 0 15px rgba(0,0,0,0.5);
+box-shadow: 0 0 15px rgba(0,0,0,0.5);
+}
+/* IE6 can't position fixed */
+* html div.dialog div { position:absolute; }
+
+
+div#deprecatedSticker {
+  display:none;
+  z-index:99;
+  position:fixed;
+  right:15px;
+  top:114px;
+  margin:0;
+  padding:1em;
+  background:#FFF;
+  border:1px solid #dddd00;
+  box-shadow:-5px 5px 10px #ccc;
+  -moz-box-shadow:-5px 5px 10px #ccc;
+  -webkit-box-shadow:-5px 5px 10px #ccc;
+}
+
+div#naMessage {
+  display:none;
+  width:555px;
+  height:0;
+  margin:0 auto;
+}
+
+div#naMessage div {
+  z-index:99;
+  width:450px;
+  position:fixed;
+  margin:50px 0;
+  padding:4em 4em 3em;
+  background:#FFF;
+  border:1px solid #999;
+  box-shadow:-10px 10px 40px #888;
+  -moz-box-shadow:-10px 10px 40px #888;
+  -webkit-box-shadow:-10px 10px 40px #888;
+}
+/* IE6 can't position fixed */
+* html div#naMessage div { position:absolute; }
+
+div#naMessage strong {
+  font-size:1.1em;
+}
+
+
+/* --------------------------------------------------------------------------
+Slideshow Controls & Next/Prev 
+*/
+.slideshow-next, .slideshow-prev {	
+	width: 20px;
+	height: 36px;
+	text-indent: -1000em;
+}
+.slideshow-container {
+	margin: 2em 0;
+}
+.slideshow-container:before, .slideshow-container:after {
+	content: "";
+	display: table;
+	clear: both;
+}
+a.slideshow-next, a.slideshow-next:visited {
+
+	float: right;
+
+	background: url(../images/arrow-right.png) no-repeat 0 0
+
+}
+
+a.slideshow-prev, a.slideshow-prev:visited {
+
+	float: left;	
+
+	background: url(../images/arrow-left.png) no-repeat 0 0
+
+}
+
+.slideshow-next:hover, .slideshow-prev:hover, .slideshow-next:focus, .slideshow-prev:focus {
+
+	background-position: 0 -36px	
+
+}
+
+.slideshow-next:active, .slideshow-prev:active {
+
+	background-position: 0 -72px	
+
+}
+.slideshow-nav {
+	width: 74px;
+	margin: 0 auto;		
+}
+.slideshow-nav a, .slideshow-nav a:visited {
+	display: inline-block;
+	width: 12px;
+	height: 12px;
+	margin: 0 2px 20px 2px;
+	background: #ccc;
+	-webkit-border-radius: 50%;
+	-moz-border-radius: 50%;
+	border-radius: 50%;
+}
+.slideshow-nav a:hover, .slideshow-nav a:focus {
+
+	background: #33B5E5
+}
+
+.slideshow-nav a:active {
+
+	background: #1e799a;
+	background: #ebebeb;	
+	-webkit-box-shadow: inset 0px 0px 5px 2px rgba(0, 0, 0, .05);
+	-moz-box-shadow: inset 0px 0px 5px 2px rgba(0, 0, 0, .05);
+	box-shadow: inset 0px 0px 5px 2px rgba(0, 0, 0, .05);
+}
+.slideshow-nav a.active, .slideshow-nav a.active:active, .slideshow-nav a.active:visited {
+	background: #33B5E5
+}
+/* --------------------------------------------------------------------------
+Tabs
+*/
+ul.tabs {
+	padding: 0;
+	margin: 2em 0 0 0;	
+}
+ul.tabs:before, ul.tabs:after {
+	content: "";
+	display: table;
+	clear: both;
+}
+ul.tabs li {
+	list-style-type: none;
+	float: left;	
+}
+ul.tabs li a, ul.tabs li a:active, ul.tabs li a:visited {
+	display: block;
+	height: 36px;
+	line-height: 36px;
+	padding: 0 15px;
+	margin-right: 2px;
+	color: #222;
+	-moz-border-radius-topleft: 2px;
+	-moz-border-radius-topright: 2px;
+	-moz-border-radius-bottomright: px;
+	-moz-border-radius-bottomleft: px;
+	-webkit-border-radius: 2px 2px px px;
+	border-radius: 2px 2px px px; 
+	border-top: solid 1px #ebebeb;
+	border-left: solid 1px #ebebeb;
+	border-right: solid 1px #ebebeb;
+	background-color: #fff;
+    background-image: -webkit-gradient(linear, left top, left bottom, from(#ffffff), to(#fafafa));
+    background-image: -webkit-linear-gradient(top, #ffffff, #fafafa);
+    background-image: -moz-linear-gradient(top, #ffffff, #fafafa);
+    background-image: -ms-linear-gradient(top, #ffffff, #fafafa);
+    background-image: -o-linear-gradient(top, #ffffff, #fafafa);
+    background-image: linear-gradient(top, #ffffff, #fafafa);
+    filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffffff',
+EndColorStr='#fafafa');
+}
+ul.tabs li a:hover {
+	color: #33B5E5;	
+}
+ul.tabs li a.selected {
+	height: 37px;
+	color: #33B5E5;
+	background-color: #f7f7f7;
+	background-image: none;
+	border-color: #ddd;
+}
+.tab-content {
+	padding: 1.2em;
+	margin: -1px 0 2em 0;
+	-webkit-border-radius: 2px;
+    -moz-border-radius: 2px;
+    border-radius: 2px;
+	border: solid 1px #ddd;
+	background: #f7f7f7;
+}
+/* --------------------------------------------------------------------------
+Feature Boxes
+*/
+.feature-box {
+  width: 291px;
+  height: 200px;
+  position: relative;
+  background: #F7F7F7;
+}
+.box-border .top, .box-border .bottom, .box-border .left, .box-border .right {
+	z-index: 100;
+	position: absolute;
+	background-color: #aaa;
+}
+.box-border .top, .box-border .bottom {
+	width: 291px;
+	height: 1px;
+}
+.dialog .box-border .top,
+.dialog .box-border .bottom { width:391px; }
+
+.box-border .left, .box-border .right {	
+	width: 1px;
+	height: 8px;		
+}
+.box-border .top { top: 0; left: 0 }
+.box-border .top .left { top: 1px; left: 0 }
+.box-border .top .right { top: 1px; right: 0 }
+.box-border .bottom .left { top: -8px; left: 0 }
+.box-border .bottom { top: 200px; left: 0 }
+.box-border .bottom .right { top: -8px; right: 0 }
+
+.feature-box h4,
+.dialog h4 {
+    margin: 15px 18px 10px;
+    padding:0;
+}
+
+.feature-box p,
+.dialog p {
+    margin: 10px 18px;
+    padding:0;
+}
+.feature-box .link,
+.dialog .link {
+    border-top: 1px solid #dedede;
+    bottom: 0;
+    position: absolute;
+    width: inherit;
+}
+.feature-box a, .feature-box h4,
+.dialog a, .dialog h4 {
+    -webkit-transition: color .4s ease;
+    -moz-transition: color .4s ease;
+    -o-transition: color .4s ease;
+    transition: color .4s ease;
+}
+.feature-box:hover {
+	cursor: pointer;	
+}
+.feature-box:hover .box-border .top, .feature-box:hover .box-border .bottom, .feature-box:hover
+.left, .feature-box:hover .right {	
+	background-color: #33B5E5;
+}
+.feature-box:hover h4, .feature-box:hover a {
+	color: #33B5E5;
+}
+/* --------------------------------------------------------------------------
+Page-Specific Styles
+*/
+.colors { 
+	position: relative;
+	float: left;
+	width: 92px;
+	margin: 40px 0 20px;
+}
+.colors div {
+	color: #fff;
+	font-size: 11.5px;
+	width: 82px;
+	height: 82px;
+	margin-top:-30px;
+	line-height: 82px;
+	text-align: center;
+	border: solid 5px #fff;
+	-webkit-border-radius: 50%;
+	-moz-border-radius: 50%;
+	border-radius: 50%;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/* ########### REFERENCE DOCS ################## */
+
+#packages-nav h2,
+#classes-nav h2 {
+  font-size:18px;
+  margin:0;
+  padding:0 0 0 4px;
+}
+
+#jd-header {
+  padding: 0 0 5px;
+  margin: 20px 0 10px;
+  font-size:13px;
+  border-bottom:solid 1px #ccc;
+}
+
+#jd-header h1 {
+  margin:0;
+  padding:0;
+}
+
+/* page-top-right container for reference pages (holds
+links to summary tables) */
+#api-info-block {
+  font-size:13px;
+  margin:20px 0 0;
+  padding:0 10px 6px;
+  font-weight:normal;
+  float:right;
+  text-align:right;
+  color:#999;
+  max-width:70%;
+}
+
+#api-info-block div.api-level {
+  font-weight:bold;
+  font-size:inherit;
+  float:none;
+  color:#222;
+  padding:0;
+  margin:0;
+}
+
+/* inheritance table */
+.jd-inheritance-table {
+  border-spacing:0;
+  margin:0;
+  padding:0;
+  font-size:13px;
+  background-color:transparent;
+}
+.jd-inheritance-table tr td {
+  border: none;
+  margin: 0;
+  padding: 0;
+  background-color:transparent;
+}
+.jd-inheritance-table .jd-inheritance-space {
+  font-weight:bold;
+  width:1em;
+}
+.jd-inheritance-table .jd-inheritance-interface-cell {
+  padding-left: 17px;
+}
+
+
+
+.jd-sumtable a {
+  text-decoration:none;
+}
+
+.jd-sumtable a:hover {
+  text-decoration:underline;
+}
+
+/* the link inside a sumtable for "Show All/Hide All" */
+.toggle-all {
+  display:block;
+  float:right;
+  font-weight:normal;
+  font-size:0.9em;
+}
+
+/* adjustments for in/direct subclasses tables */
+.jd-sumtable.jd-sumtable-subclasses {
+  margin: 1em 0 0 0;
+  max-width:968px;
+  background-color:transparent;
+  font-size:13px;
+}
+
+/* extra space between end of method name and open-paren */
+.sympad {
+  margin-right: 2px;
+}
+
+/* right alignment for the return type in sumtable */
+.jd-sumtable .jd-typecol {
+  text-align:right;
+}
+
+/* adjustments for the expando table-in-table */
+.jd-sumtable-expando {
+  margin:.5em 0;
+  padding:0;
+}
+
+/* a div that holds a short description */
+.jd-descrdiv {
+  padding:3px 1em 0 1em;
+  margin:0;
+  border:0;
+}
+
+#jd-content img.jd-expando-trigger-img {
+  padding:0 4px 4px 0;
+  margin:0;
+}
+
+.jd-sumtable-subclasses div#subclasses-direct,
+.jd-sumtable-subclasses div#subclasses-indirect {
+  margin:0 0 0 13px;
+}
+
+
+
+/********* MEMBER REF *************/
+
+
+.jd-details {
+/*  border:1px solid #669999;
+  padding:4px; */
+  margin:0 0 1em;
+}
+
+/* API reference: a container for the
+.tagdata blocks that make up the detailed
+description */
+.jd-details-descr {
+  padding:0;
+  margin:.5em .25em;
+}
+
+/* API reference: a block containing
+a detailed description, a params table,
+seealso list, etc */
+.jd-tagdata {
+  margin:.5em 1em;
+}
+
+.jd-tagdata p {
+  margin:0 0 1em 1em;
+}
+
+/* API reference: adjustments to
+the detailed description block */
+.jd-tagdescr {
+  margin:.25em 0 .75em 0;
+}
+
+.jd-tagdescr ol,
+.jd-tagdescr ul {
+  margin:0 2.5em;
+  padding:0;
+}
+
+.jd-tagdescr table,
+.jd-tagdescr img {
+  margin:.25em 1em;
+}
+
+.jd-tagdescr li {
+margin:0 0 .25em 0;
+padding:0;
+}
+
+/* API reference: heading marking
+the details section for constants,
+attrs, methods, etc. */
+h4.jd-details-title {
+  font-size:1.15em;
+  background-color: #E2E2E2;
+  margin:1.5em 0 .6em;
+  padding:3px 95px 3px 3px; /* room for api-level */
+}
+
+h4.jd-tagtitle {
+  margin:0;
+}
+
+h4 .normal {
+  font-weight:normal;
+}
+
+/* API reference: heading for "Parameters", "See Also", etc.,
+in details sections */
+h5.jd-tagtitle {
+  margin:0 0 .25em 0;
+  font-size:1em;
+}
+
+.jd-tagtable {
+  margin:0;
+  background-color:transparent;
+  width:auto;
+}
+
+.jd-tagtable td,
+.jd-tagtable th {
+  border:none;
+  background-color:#fff;
+  vertical-align:top;
+  font-weight:normal;
+  padding:2px 10px;
+}
+
+.jd-tagtable th {
+  font-style:italic;
+}
+
+/* Inline api level indicator for methods */
+div.api-level {
+  font-size:.8em;
+  font-weight:normal;
+  color:#999;
+  float:right;
+  padding:0 8px 0;
+  margin-top:-30px;
+}
+
+table.jd-tagtable td,
+table.jd-tagtable th {
+  background-color:transparent;
+}
+
+table.jd-tagtable th {
+  color:inherit;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/* SEARCH FILTER */
+
+#search_autocomplete {
+  font-weight:normal;
+}
+
+#search_filtered_wrapper {
+  width: 193px;
+  float: right;
+}
+#search_filtered_div {
+  position:absolute;
+  z-index:9999;
+  min-width:171px; /* +padding and border makes this match input width */
+  padding:5px;
+  border: solid 1px #C5C5C5;
+  background: white;
+  top: 35px;
+  -moz-box-shadow: 0 0 10px rgba(0,0,0,0.2);
+  -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
+  box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
+}
+
+ul#search_filtered {
+  min-width:100%;
+  margin:0;
+  list-style: none;
+  margin: 0;
+  padding: 0;
+}
+
+
+#search_filtered li{
+  line-height:1.5em;
+  margin: 0 0 2px;
+  padding: 0;
+}
+
+#search_filtered li a {
+  padding:0 5px;
+  color:#222 !important;
+}
+
+#search_filtered .jd-selected {
+  background-color: #33B5E5;
+  cursor:pointer;
+}
+#search_filtered .jd-selected,
+#search_filtered .jd-selected a {
+  color:#f7f7f7 !important;
+}
+
+.no-display {
+  display: none;
+}
+
+.jd-autocomplete {
+  padding-left: 6px;
+  padding-right: 6px;
+  padding-top: 1px;
+  padding-bottom: 1px;
+  font-size: 0.81em;
+  border: none;
+  margin: 0;
+  line-height: 1.05em;
+}
+
+.show-item {
+  display: table-row;
+}
+.hide-item {
+  display: hidden;
+}
+
+
+
+
+
+/* SEARCH RESULTS */
+
+/* disable twiddle and size selectors for left column */
+#leftSearchControl div {
+  padding:0;
+}
+
+#leftSearchControl .gsc-twiddle {
+  background-image : none;
+}
+
+#leftSearchControl td, #searchForm td {
+  border: 0px solid #000;
+  padding:0;
+}
+
+#leftSearchControl .gsc-resultsHeader .gsc-title {
+  padding-left : 0px;
+  font-weight : bold;
+  font-size : 13px;
+  color:#006699;
+  display : none;
+}
+
+#leftSearchControl .gsc-resultsHeader div.gsc-results-selector {
+  display : none;
+}
+
+#leftSearchControl .gsc-resultsRoot {
+  padding-top : 6px;
+}
+
+#leftSearchControl div.gs-visibleUrl-long {
+  display : block;
+  color:#006699;
+}
+
+#leftSearchControl .gsc-webResult {
+  padding:0 0 20px 0;
+}
+
+.gsc-webResult div.gs-visibleUrl-short,
+table.gsc-branding,
+.gsc-clear-button {
+  display : none;
+}
+
+.gsc-cursor-box .gsc-cursor div.gsc-cursor-page,
+.gsc-cursor-box .gsc-trailing-more-results a.gsc-trailing-more-results,
+#leftSearchControl a,
+#leftSearchControl a b {
+  color:#006699;
+}
+
+.gsc-resultsHeader {
+  display: none;
+}
+
+/* Disable built in search forms */
+.gsc-control form.gsc-search-box {
+  display : none;
+}
+table.gsc-search-box {
+  margin:6px 0 0 0;
+  border-collapse:collapse;
+}
+
+td.gsc-input {
+  padding:0 2px;
+  width:100%;
+  vertical-align:middle;
+}
+
+input.gsc-input {
+  border:1px solid #BCCDF0;
+  width:99%;
+  padding-left:2px;
+  font-size:.95em;
+}
+
+td.gsc-search-button {
+  text-align: right;
+  padding:0;
+  vertical-align:top;
+}
+
+
+#searchResults {
+  overflow:hidden; /* because the repositioned page links makes the section think it needs to scroll
+(it doesn't) */
+  height:auto;
+}
+
+#searchResults .gsc-control {
+  position:relative;
+  width:auto;
+  padding:0 0 10px;
+}
+
+#searchResults .gsc-tabsArea {
+  position:relative;
+  white-space:nowrap;
+  float:left;
+  width:200px;
+}
+
+#searchResults .gsc-above-wrapper-area {
+  display:none;
+}
+
+#searchResults .gsc-resultsbox-visible {
+  float:left;
+  width:720px;
+  margin-left:20px;
+}
+
+#searchResults .gsc-tabHeader {
+  padding: 3px 6px;
+  position:relative;
+  width:auto;
+  display:block;
+}
+
+#searchResults h2#searchTitle {
+  padding:0;
+  margin:5px 0;
+  border:none;
+}
+
+#searchResults h2#searchTitle em {
+  font-style:normal;
+  color:#33B5E5;
+}
+
+#searchResults .gsc-table-result {
+  margin:5px 0 10px 0;
+  background-color:transparent;
+}
+#searchResults .gs-web-image-box, .gs-promotion-image-box {
+  width:120px;
+}
+#searchResults .gs-web-image-box img.gs-image, .gs-promotion-image-box img.gs-promotion-image {
+  max-width:120px;
+}
+
+#searchResults .gsc-table-result .gsc-thumbnail {
+  padding:0 20px 0 0;
+}
+
+#searchResults td {
+  background-color:transparent;
+}
+
+#searchResults .gsc-expansionArea {
+  position:relative;
+}
+#searchResults .gsc-tabsArea .gsc-cursor-box {
+  width:200px;
+  padding:20px 0 0 1px;
+}
+#searchResults .gsc-cursor-page {
+  display:inline-block;
+  float:left;
+  margin:-1px 0 0 -1px;
+  padding:0;
+  height:27px;
+  width:27px;
+  text-align:center;
+  line-height:2;
+}
+
+#searchResults .gsc-tabHeader.gsc-tabhInactive,
+#searchResults .gsc-cursor-page {
+  text-decoration:none;
+  color:#258AAF;
+  border: solid 1px #DADADA;
+}
+
+#searchResults .gsc-tabHeader.gsc-tabhInactive:hover,
+#searchResults .gsc-cursor-page:hover {
+  border-color: #DBDBDB;
+  background-color: #F3F3F3;
+  background-image: -webkit-gradient(linear, left top, left bottom, from(#F9F9F9), to(#ECECEC));
+  background-image: -webkit-linear-gradient(top, #F9F9F9, #ECECEC);
+  background-image: -moz-linear-gradient(top, #F9F9F9, #ECECEC);
+  background-image: -ms-linear-gradient(top, #F9F9F9, #ECECEC);
+  background-image: -o-linear-gradient(top, #F9F9F9, #ECECEC);
+  background-image: linear-gradient(top, #F9F9F9, #ECECEC);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#f9f9f9',
+EndColorStr='#ececec');
+  color: #33B5E5;
+}
+
+#searchResults .gsc-tabHeader.gsc-tabhActive,
+#searchResults .gsc-tabHeader.gsc-tabhActive:hover,
+#searchResults .gsc-cursor-page.gsc-cursor-current-page,
+#searchResults .gsc-cursor-page.gsc-cursor-current-page:hover {
+  color:#fff;
+  background-color: #09C;
+  background-image: -webkit-gradient(linear, left top, left bottom, from(#2FADDB), to(#09C));
+  background-image: -webkit-linear-gradient(top, #2FADDB, #09C);
+  background-image: -moz-linear-gradient(top, #2FADDB, #09C);
+  background-image: -ms-linear-gradient(top, #2FADDB, #09C);
+  background-image: -o-linear-gradient(top, #2FADDB, #09C);
+  background-image: linear-gradient(top, #2FADDB, #09C);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#2faddb', EndColorStr='#09c');
+  border: 1px solid #3990AB;
+  z-index:100;
+}
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+/*********** PREVIOUSLY dac-styles.css ***************/
+
+
+
+
+
+::-webkit-selection,
+::-moz-selection,
+::selection {
+  background-color: #0099cc;
+  color: #fff; }
+
+#header {
+  border-bottom:0;
+}
+
+#header .wrap {
+  max-width:940px;
+  height:41px;
+  border-bottom:1px solid;
+  border-color: #ccc;
+  position:relative;
+}
+
+.about #header .wrap {
+  border-color: #9933CC;
+}
+
+.design #header .wrap {
+  border-color: #33b5e5;
+}
+
+.develop #header .wrap {
+  border-color: #F80;
+}
+
+.distribute #header .wrap {
+  border-color: #9C0;
+}
+
+.logo a {
+  width:123px;
+  float:left;
+}
+
+#header .logo {
+  margin-top: -6px;
+  margin-left: 0px;
+  margin-bottom:0px;
+  width: 160px;
+  padding-right:10px;
+}
+
+.search {
+  height:25px;
+  margin-top: -3px;
+  margin-bottom: 0px;
+}
+
+
+
+/* Quicknav */
+.btn-quicknav {
+  width:20px;
+  height:28px;
+  float:left;
+  margin-left:6px;
+  padding-right:10px;
+  position:relative;
+  cursor:pointer;
+  border-right:1px solid #CCC;
+}
+
+.btn-quicknav a {
+  zoom:1;
+  position:absolute;
+  top:13px;
+  left:5px;
+  display:block;
+  text-indent:-9999em;
+  width:10px;
+  height:5px;
+  background:url(../images/quicknav_arrow.png) no-repeat;
+}
+
+.btn-quicknav a.arrow-active {
+  background-position: 0 -5px;
+  display:none;
+}
+
+#header-wrap.quicknav a.arrow-inactive {
+  display:none;
+}
+
+.btn-quicknav.active a.arrow-active {
+  display:block;
+}
+
+.nav-x li {
+  display:block;
+  float:left;
+  margin-right:45px;
+  -webkit-transition: all 0.25s linear;
+      -moz-transition: all 0.25s linear;
+       -ms-transition: all 0.25s linear;
+        -o-transition: all 0.25s linear;
+           transition: all 0.25s linear;
+}
+
+#header-wrap.quicknav .nav-x li {
+  min-width:160px;
+  margin-right:20px;
+}
+
+#header-wrap.quicknav li.last {
+  margin-right:0px;
+}
+
+#quicknav {
+ float:none; 
+ clear:both;
+ margin-left:180px;
+ margin-top:-30px;
+ display:none;
+ overflow:hidden;
+}
+
+#header-wrap.quicknav #quicknav {
+
+}
+
+#quicknav ul {
+  margin:10px 0;
+  padding:0;
+}
+
+#quicknav ul li.design {
+  border-top:1px solid #33b5e5;
+}
+
+#quicknav ul li.develop {
+  border-top:1px solid #FF8800;
+}
+
+#quicknav ul li.distribute {
+  border-top:1px solid #99cc00;
+}
+
+#quicknav ul li {
+  display:block;
+  float:left;
+  margin:0 20px 0 0;
+  min-width:140px;
+}
+
+#quicknav ul li.last {
+  margin-right:0px;
+}
+
+#quicknav ul li ul li {
+  float:none;
+}
+
+#quicknav ul li ul li a {
+  color:#222;
+}
+
+#quicknav ul li li ul,
+#quicknav ul li li ul li {
+  margin:0;
+}
+
+#quicknav ul li li ul li:before {
+  content:"\21B3";
+}
+
+#header-wrap {
+   -webkit-transition: all 0.25s ease-out;
+      -moz-transition: all 0.25s ease-out;
+       -ms-transition: all 0.25s ease-out;
+        -o-transition: all 0.25s ease-out;
+           transition: all 0.25s ease-out;
+
+}
+
+#header-wrap.quicknav {
+  height:170px;
+  
+}
+
+/* SEARCH AND MORE */
+.search {
+  position: absolute;
+  width: 50px;
+  height:28px;
+  display: block;
+  margin-top:-3px;
+  margin-bottom:7px;
+  overflow:hidden;
+  z-index:100;
+  right:54px;
+  -webkit-transition: width 0.4s ease;
+     -moz-transition: width 0.4s ease;
+       -o-transition: width 0.4s ease;
+          transition: width 0.4s ease;
+}
+
+.search #search-btn {
+  width:50px;
+  height:28px;
+  background:url(../images/icon_search.png) no-repeat;
+  float:left;
+}
+
+.search-inner {
+  width:245px;
+}
+
+.search:hover, .search.active {
+  width:245px;
+}
+
+.search .bottom, .search .left, .search .right {
+	position: absolute;
+	background-color: #a2a2a2
+}
+
+.search .bottom {
+	width: 214px;
+	height: 1px;
+	top: 24px;
+	left: 0
+}
+
+.search .left, .search .right {	
+	height: 5px;
+	width: 1px
+}
+
+.search .left {
+  top: 22px;
+  left: 56px;
+  background-color:#CCC;
+}
+
+.search .right {
+  top: 22px;
+  left: 238px;
+  background-color:#CCC;
+}
+
+.search form {
+	margin-top: 2px;
+	width: 162px;
+	float:left;
+}
+
+.search form input {
+	color: #2f2f2f;
+	font-size: 0.95em;
+	width: 178px;  
+	border: none;
+	margin-left: 6px;  
+	z-index: 1500;  
+  position: relative;
+	background-color: transparent;
+	border-bottom:1px solid #CCC;
+	padding:0 0 0 4px;
+	outline:none;
+	height:24px;
+}
+
+.search:hover form input {
+  border-bottom:1px solid #33B5E5;
+}
+
+.search:hover .bottom, .search:hover .left, .search:hover .right {
+	background-color: #33b5e5;
+}
+
+.search:hover #search-btn {
+	background-position: 0 -28px
+}
+
+.search form input:focus {
+	color: #222;
+	font-weight: bold
+}
+
+.moremenu {
+  float: right;
+	position: relative;
+	width: 50px;
+	height:28px;
+  display: block;
+  margin-top:-3px;
+  margin-bottom:7px;
+  overflow:hidden;
+  -webkit-transition: width 0.25s ease;
+     -moz-transition: width 0.25s ease;
+       -o-transition: width 0.25s ease;
+          transition: width 0.25s ease;
+}
+
+.moremenu #more-btn {
+  width:40px;
+  height:28px;
+  background:url(../images/icon_more.png) no-repeat;
+  border-left:1px solid #CCC;
+  float:left;
+  cursor:pointer;
+}
+
+.moremenu:hover #more-btn {
+  background-position:0 -28px;
+}
+
+.morehover {
+  position:absolute;
+  right:6px;
+  top:-9px;
+  width:40px;
+  height:35px;
+  z-index:99;
+  overflow:hidden;
+
+  -webkit-opacity:0;
+     -moz-opacity:0;
+       -o-opacity:0;
+          opacity:0;
+
+  -webkit-transform-origin:100% 0%;
+     -moz-transform-origin:100% 0%; 
+       -o-transform-origin:100% 0%;
+          transform-origin:100% 0%;
+  
+  -webkit-transition-property: -webkit-opacity;
+  -webkit-transition-duration: .25s;
+  -webkit-transition-timing-function:ease;
+
+  -moz-transition-property: -webkit-opacity;
+  -moz-transition-duration: .25s;
+  -moz-transition-timing-function:ease;
+
+  -o-transition-property: -webkit-opacity;
+  -o-transition-duration: .25s;
+  -o-transition-timing-function:ease;
+  
+  -transition-property: -webkit-opacity;
+  -transition-duration: .25s;
+  -transition-timing-function:ease;
+}
+
+.morehover:hover {
+  opacity:1;
+  height:345px;
+  width:268px;
+  -webkit-transition-property:height,  -webkit-opacity;
+}
+
+.morehover .top {
+  width:268px;
+  height:39px;
+  background:url(../images/more_top.png) no-repeat;
+}
+
+.morehover .mid {
+  width:228px;
+  background:url(../images/more_mid.png) repeat-y;
+  padding:10px 20px 10px 20px;
+}
+
+.morehover .mid .header {
+  border-bottom:1px solid #ccc;
+  font-weight:bold;
+}
+
+.morehover .bottom {
+  width:268px;
+  height:6px;
+  background:url(../images/more_bottom.png) no-repeat;
+}
+
+.morehover ul {
+  margin:10px 10px 20px 0;
+}
+
+.morehover ul li {
+  list-style:none;
+}
+
+.morehover ul li.active a,
+.morehover ul li.active a:hover {
+  color:#222 !important;
+}
+
+.morehover ul li.active img {
+  margin-right:4px;
+}
+
+
+
+
+/* MARQUEE */
+.slideshow-container {
+	width:100%;
+	overflow:hidden;
+	position:relative;
+}
+.slideshow-container .slideshow-prev {
+	position:absolute;
+	top:50%;
+	left:0px;
+	margin-top:-36px;
+	z-index:99;
+}
+.slideshow-container .slideshow-next {
+	position:absolute;
+	top:50%;
+	margin-top:-36px;
+	z-index:99;
+	right:0px;
+}
+
+.slideshow-container .pagination {
+	position:absolute;
+	bottom:20px;
+	width:100%;
+	text-align:center;
+	z-index:99;
+}
+.slideshow-container .pagination ul {
+	margin:0;
+}
+.slideshow-container .pagination ul li{
+	display: inline-block;
+	width:12px;
+	height:12px;
+	text-indent:-8000px;
+	list-style:none;
+	margin: 0 2px;
+	border-radius:6px;
+	background-color:#ccc;
+	cursor:pointer;
+        -webkit-transition:color .5s ease-in;  
+        -moz-transition:color .5s ease-in;  
+        -o-transition:color .5s ease-in;  
+        transition:color .5s ease-in;
+}
+.slideshow-container .pagination ul li:hover {
+	background-color:#999;
+}
+.slideshow-container .pagination ul li.active {
+	background-color:#33b5e5;
+}
+.slideshow-container .pagination ul li.active:hover {
+	background-color:#33b5e5;
+}
+.slideshow-container ul li {
+	display:inline;
+	list-style:none;
+}
+
+
+
+
+a.download-sdk {
+    float:right;
+    margin:-10px 0;
+    height:30px;
+    padding-top:4px;
+    padding-bottom:0px;
+}
+
+#nav-x {
+  padding-top: 14px;
+}
+
+#nav-x .wrap,
+#searchResults.wrap {
+    max-width:940px;
+    border-bottom:1px solid #CCC;
+    min-height:34px;
+    
+}
+
+
+.nav-x {
+    margin-left:0;
+    margin-bottom:0;
+}
+
+
+
+
+
+
+
+
+
+
+/*
+ * CSS Styles that are needed by jScrollPane for it to operate correctly.
+ */
+
+.jspContainer {
+  overflow: hidden;
+  position: relative;
+}
+
+.jspPane {
+  position: absolute;
+  overflow: hidden;
+  width:auto !important; /* to avoid cut-off api names in reference in horiz scroll */
+}
+
+.jspVerticalBar {
+  position: absolute;
+  top: 0;
+  right: 0;
+  width: 4px;
+  height: 100%;
+  background: #f5f5f5;
+}
+
+.jspHorizontalBar {
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  width: 100%;
+  height: 4px;
+  background: #f5f5f5;
+}
+
+.jspVerticalBar *,
+.jspHorizontalBar * {
+  margin: 0;
+  padding: 0;
+}
+.jspCap {
+  display: block;
+}
+
+.jspVerticalBar .jspCap {
+  height: 4px;
+}
+
+.jspHorizontalBar .jspCap {
+  width: 0;
+  height: 100%;
+}
+
+.jspHorizontalBar .jspCap {
+  float: left;
+}
+
+.jspTrack {
+  position: relative;
+}
+
+.jspDrag {
+  background: #bbb;
+  position: relative;
+  top: 0;
+  left: 0;
+  cursor: pointer;
+}
+
+.jspDrag:hover,
+.jspDrag:active {
+  border-color: #09c;
+  background-color: #4cadcb;
+  background-image: -webkit-gradient(linear, left top, right top, from(#5dbcd9), to(#4cadcb));
+  background-image: -webkit-linear-gradient(left, #5dbcd9, #4cadcb);
+  background-image: -moz-linear-gradient(left, #5dbcd9, #4cadcb);
+  background-image: -ms-linear-gradient(left, #5dbcd9, #4cadcb);
+  background-image: -o-linear-gradient(left, #5dbcd9, #4cadcb);
+  background-image: linear-gradient(left, #5dbcd9, #4cadcb);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#5dbcd9', EndColorStr='#4cadcb');	
+}
+
+.jspHorizontalBar .jspTrack,
+.jspHorizontalBar .jspDrag {
+  float: left;
+  height: 100%;
+}
+
+.jspArrow {
+  background: #999;
+  text-indent: -20000px;
+  display: block;
+  cursor: pointer;
+}
+
+.jspArrow.jspDisabled {
+  cursor: default;
+  background: #ccc;
+}
+
+.jspVerticalBar .jspArrow {
+  height: 16px;
+}
+
+.jspHorizontalBar .jspArrow {
+  width: 16px;
+  float: left;
+  height: 100%;
+}
+
+.jspVerticalBar .jspArrow:focus {
+  outline: none;
+}
+
+.jspCorner {
+  float: left;
+  height: 100%;
+}
+
+/* Yuk! CSS Hack for IE6 3 pixel bug :( */
+* html .jspCorner {
+  margin: 0 -3px 0 0;
+}
+/******* end of jscrollpane *********/
+
+
+
+
+
+/************ DEVELOP HOMEPAGE ******************/
+
+/* Slideshow */
+.slideshow-develop {
+  height: 300px;
+  width: 940px;
+  position: relative;
+  overflow:hidden;
+}
+.slideshow-develop .frame {
+  width: 940px;
+  height: 300px;
+}
+.slideshow-develop img.play {
+  width:350px;
+  margin:20px 0 0 90px;
+  -webkit-transform: perspective(800px ) rotateY( 35deg );
+  box-shadow: -16px 20px 40px rgba(0, 0, 0, 0.3);
+  -moz-box-shadow: -16px 20px 40px rgba(0, 0, 0, 0.3);
+  -webkit-box-shadow: -16px 20px 40px rgba(0, 0, 0, 0.3);
+}
+.slideshow-develop img.play.no-shadow {
+    box-shadow: none;
+    -moz-box-shadow: none;
+    -webkit-box-shadow: none;
+}
+.slideshow-develop img.play.no-transform {
+  -webkit-transform: none;
+}
+.slideshow-develop a.slideshow-next {
+  background: url(../images/arrow-right-develop.png);
+}
+.slideshow-develop a.slideshow-prev {
+  background: url(../images/arrow-left-develop.png);
+}
+.slideshow-develop .content-right {
+  float: left;
+}
+.slideshow-develop .content-right p.title-intro {
+  position:absolute;
+  margin:0;
+}
+.slideshow-develop .content-right h2 {
+  padding:0;
+  margin-bottom:10px;
+  border:none;
+}
+.slideshow-develop .item {
+  height: 300px;
+  width: 940px;
+}
+.slideshow-develop .pagination ul li.active {
+  background-color: #F80;
+}
+.slideshow-develop .pagination ul li.active:hover {
+  background-color: #F80;
+}
+
+/* Feeds */
+.feed ul {
+  margin: 0;
+}
+.feed .feed-nav {
+  height: 25px;
+  border-bottom: 1px solid #CCC;
+}
+.feed .feed-nav li {
+  list-style: none;
+  float: left;
+  margin-right: 25px;
+  cursor: pointer;
+}
+.feed .feed-nav li.active {
+  color: #000;
+  border-bottom: 4px solid #F80;
+}
+.feed .feed-container {
+  overflow: hidden;
+  width: 460px;
+}
+.feed .feed-container .feed-frame {
+  width: 1000px;
+}
+.feed .feed-container .feed-frame ul {
+  float: left;
+  width:460px;
+}
+.feed .feed-container .feed-frame ul ul {
+  float: none;
+  margin:10px 0 0 30px;
+}
+.feed .feed-container .feed-frame li {
+  list-style: none;
+  margin: 20px 0 20px 0;
+  width: 460px;
+  height:93px;
+}
+.feed .feed-container .feed-frame li.playlist {
+  height:auto;
+}
+.feed .feed-container .feed-frame li.playlist a {
+  height:93px;
+  display:block;
+}
+.feed .feed-container .feed-frame li.more {
+  height:20px;
+  margin:10px 0 5px 5px;
+}
+.feed .feed-container .feed-frame li.more a {
+  height:inherit;
+}
+.feed .feed-container .feed-frame li.playlist-video {
+  list-style: none;
+  margin: 0;
+  width: 460px;
+  height:55px;
+  font-size:12px;
+}
+.feed .feed-container .feed-frame li.playlist-video a {
+  height:45px;
+  padding:5px;
+}
+.feed .feed-container .feed-frame li.playlist-video h5 {
+  font-size:12px;
+  line-height:13px;
+  margin:0;
+}
+.feed .feed-container .feed-frame li.playlist-video p {
+  margin:5px 0 0;
+  line-height:15px;
+}
+.feed-container .feed-frame div.feed-image {
+  float: left;
+  border: 1px solid #999;
+  margin:0 20px 0 0;
+  width:122px;
+  height:92px;
+  background:url('../images/blog-default.png') no-repeat 0 0;
+  background-size:180px;
+}
+#jd-content .feed .feed-container .feed-frame li img {
+  float: left;
+  border: 1px solid #999;
+  margin:0 20px 0 0;
+  width:122px;
+  height:92px;
+}
+#jd-content .feed .feed-container .feed-frame li.playlist-video img {
+  width:inherit;
+  height:inherit;
+}
+
+.feed .feed-container .feed-frame li a,
+.feed .feed-container .feed-frame li a:active {
+  color:#555 !important;
+}
+
+.feed .feed-container .feed-frame li a:hover,
+.feed .feed-container .feed-frame li a:hover * {
+  color:#7AA1B0 !important;
+}
+
+/* Video player */
+#player-wrapper {
+  display:none;
+  margin: -1px auto 0;
+  position: relative;
+  width: 940px;
+  height: 0px;
+}
+#player-frame {
+  background: #EFEFEF;
+  border: 1px solid #CCC;
+  padding: 0px 207px;
+  z-index: 10; /* stay above marque, but below search suggestions */
+  width: 525px;
+  height: 330px;
+  position: relative;
+}
+
+
+
+/************ DISTRIBUTE HOMEPAGE ***************/
+
+.marquee {
+  width: 760px;
+}
+.marquee .main-img {
+  float: left;
+  margin-top: 20px;
+  width: 490px;
+}
+.marquee .copy {
+  width: 270px;
+  float: left;
+  margin-top: 30px;
+}
+.distribute-features {
+  margin: 0;
+}
+.distribute-features ul {
+  margin: 0;
+}
+.distribute-features ul li {
+  list-style: none;
+  float: left;
+  border-top: 1px solid #9C0;
+  width: 220px;
+  margin-right: 50px;
+}
+.distribute-features ul li.last {
+  margin-right: 0px;
+}
+
+
+/************ DEVELOP TOPIC CONTAINERS ************/
+
+.landing-banner,
+.landing-docs {
+  margin:20px 0 0;
+}
+.landing-banner {
+  height:280px;
+}
+.landing-banner .col-6:first-child,
+.landing-docs .col-6:first-child {
+  margin-left:0;
+}
+.landing-banner .col-6:last-child,
+.landing-docs .col-6:last-child {
+  margin-right:0;
+}
+
+.landing-banner h1 {
+  margin-top:0;
+}
+.landing-docs h3 {
+  font-size:14px;
+  line-height:21px;
+  color:#555;
+  text-transform:uppercase;
+  border-bottom:1px solid #CCC;
+  margin:0 0 20px;
+}
+.landing-docs a {
+  color:#333 !important;
+}
+.landing-docs a:hover,
+.landing-docs a:hover * {
+  color:#7AA1B0 !important
+}
+
+.plusone {
+  float:right;
+}
\ No newline at end of file
diff --git a/docs/html/guide/google/gcm/client-javadoc/deprecated-list.html b/docs/html/guide/google/gcm/client-javadoc/deprecated-list.html
index ebdcc26..6b86bfe 100644
--- a/docs/html/guide/google/gcm/client-javadoc/deprecated-list.html
+++ b/docs/html/guide/google/gcm/client-javadoc/deprecated-list.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:06:25 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:13:37 PDT 2012 -->
 <TITLE>
 Deprecated List
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="default.css" TITLE="Style">
 
 <SCRIPT type="text/javascript">
 function windowTitle()
diff --git a/docs/html/guide/google/gcm/client-javadoc/help-doc.html b/docs/html/guide/google/gcm/client-javadoc/help-doc.html
index 0dc47eb..ffd1f77 100644
--- a/docs/html/guide/google/gcm/client-javadoc/help-doc.html
+++ b/docs/html/guide/google/gcm/client-javadoc/help-doc.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:06:25 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:13:37 PDT 2012 -->
 <TITLE>
 API Help
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="default.css" TITLE="Style">
 
 <SCRIPT type="text/javascript">
 function windowTitle()
diff --git a/docs/html/guide/google/gcm/client-javadoc/index-all.html b/docs/html/guide/google/gcm/client-javadoc/index-all.html
index 43b8e4e..74e6095 100644
--- a/docs/html/guide/google/gcm/client-javadoc/index-all.html
+++ b/docs/html/guide/google/gcm/client-javadoc/index-all.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:06:25 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:13:37 PDT 2012 -->
 <TITLE>
 Index
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="./stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="./default.css" TITLE="Style">
 
 <SCRIPT type="text/javascript">
 function windowTitle()
@@ -94,6 +94,10 @@
 <DT><A HREF="./com/google/android/gcm/GCMConstants.html#DEFAULT_INTENT_SERVICE_CLASS_NAME"><B>DEFAULT_INTENT_SERVICE_CLASS_NAME</B></A> - 
 Static variable in class com.google.android.gcm.<A HREF="./com/google/android/gcm/GCMConstants.html" title="class in com.google.android.gcm">GCMConstants</A>
 <DD>&nbsp;
+<DT><A HREF="./com/google/android/gcm/GCMRegistrar.html#DEFAULT_ON_SERVER_LIFESPAN_MS"><B>DEFAULT_ON_SERVER_LIFESPAN_MS</B></A> - 
+Static variable in class com.google.android.gcm.<A HREF="./com/google/android/gcm/GCMRegistrar.html" title="class in com.google.android.gcm">GCMRegistrar</A>
+<DD>Default lifespan (7 days) of the <A HREF="./com/google/android/gcm/GCMRegistrar.html#isRegisteredOnServer(Context)"><CODE>isRegisteredOnServer(Context)</CODE></A>
+ flag until it is considered expired.
 </DL>
 <HR>
 <A NAME="_E_"><!-- --></A><H2>
@@ -150,10 +154,13 @@
 <B>G</B></H2>
 <DL>
 <DT><A HREF="./com/google/android/gcm/GCMBaseIntentService.html" title="class in com.google.android.gcm"><B>GCMBaseIntentService</B></A> - Class in <A HREF="./com/google/android/gcm/package-summary.html">com.google.android.gcm</A><DD>Skeleton for application-specific <CODE>IntentService</CODE>s responsible for
- handling communication from Google Cloud Messaging service.<DT><A HREF="./com/google/android/gcm/GCMBaseIntentService.html#GCMBaseIntentService(java.lang.String)"><B>GCMBaseIntentService(String)</B></A> - 
+ handling communication from Google Cloud Messaging service.<DT><A HREF="./com/google/android/gcm/GCMBaseIntentService.html#GCMBaseIntentService()"><B>GCMBaseIntentService()</B></A> - 
 Constructor for class com.google.android.gcm.<A HREF="./com/google/android/gcm/GCMBaseIntentService.html" title="class in com.google.android.gcm">GCMBaseIntentService</A>
-<DD>Subclasses must create a public no-arg constructor and pass the
- sender id to be used for registration.
+<DD>Constructor that does not set a sender id, useful when the sender id
+ is context-specific.
+<DT><A HREF="./com/google/android/gcm/GCMBaseIntentService.html#GCMBaseIntentService(java.lang.String...)"><B>GCMBaseIntentService(String...)</B></A> - 
+Constructor for class com.google.android.gcm.<A HREF="./com/google/android/gcm/GCMBaseIntentService.html" title="class in com.google.android.gcm">GCMBaseIntentService</A>
+<DD>Constructor used when the sender id(s) is fixed.
 <DT><A HREF="./com/google/android/gcm/GCMBroadcastReceiver.html" title="class in com.google.android.gcm"><B>GCMBroadcastReceiver</B></A> - Class in <A HREF="./com/google/android/gcm/package-summary.html">com.google.android.gcm</A><DD><CODE>BroadcastReceiver</CODE> that receives GCM messages and delivers them to
  an application-specific <A HREF="./com/google/android/gcm/GCMBaseIntentService.html" title="class in com.google.android.gcm"><CODE>GCMBaseIntentService</CODE></A> subclass.<DT><A HREF="./com/google/android/gcm/GCMBroadcastReceiver.html#GCMBroadcastReceiver()"><B>GCMBroadcastReceiver()</B></A> - 
 Constructor for class com.google.android.gcm.<A HREF="./com/google/android/gcm/GCMBroadcastReceiver.html" title="class in com.google.android.gcm">GCMBroadcastReceiver</A>
@@ -161,9 +168,16 @@
 <DT><A HREF="./com/google/android/gcm/GCMConstants.html" title="class in com.google.android.gcm"><B>GCMConstants</B></A> - Class in <A HREF="./com/google/android/gcm/package-summary.html">com.google.android.gcm</A><DD>Constants used by the GCM library.<DT><A HREF="./com/google/android/gcm/GCMRegistrar.html" title="class in com.google.android.gcm"><B>GCMRegistrar</B></A> - Class in <A HREF="./com/google/android/gcm/package-summary.html">com.google.android.gcm</A><DD>Utilities for device registration.<DT><A HREF="./com/google/android/gcm/GCMBroadcastReceiver.html#getGCMIntentServiceClassName(Context)"><B>getGCMIntentServiceClassName(Context)</B></A> - 
 Method in class com.google.android.gcm.<A HREF="./com/google/android/gcm/GCMBroadcastReceiver.html" title="class in com.google.android.gcm">GCMBroadcastReceiver</A>
 <DD>Gets the class name of the intent service that will handle GCM messages.
+<DT><A HREF="./com/google/android/gcm/GCMRegistrar.html#getRegisterOnServerLifespan(Context)"><B>getRegisterOnServerLifespan(Context)</B></A> - 
+Static method in class com.google.android.gcm.<A HREF="./com/google/android/gcm/GCMRegistrar.html" title="class in com.google.android.gcm">GCMRegistrar</A>
+<DD>Gets how long (in milliseconds) the <A HREF="./com/google/android/gcm/GCMRegistrar.html#isRegistered(Context)"><CODE>isRegistered(Context)</CODE></A>
+ property is valid.
 <DT><A HREF="./com/google/android/gcm/GCMRegistrar.html#getRegistrationId(Context)"><B>getRegistrationId(Context)</B></A> - 
 Static method in class com.google.android.gcm.<A HREF="./com/google/android/gcm/GCMRegistrar.html" title="class in com.google.android.gcm">GCMRegistrar</A>
 <DD>Gets the current registration id for application on GCM service.
+<DT><A HREF="./com/google/android/gcm/GCMBaseIntentService.html#getSenderIds(Context)"><B>getSenderIds(Context)</B></A> - 
+Method in class com.google.android.gcm.<A HREF="./com/google/android/gcm/GCMBaseIntentService.html" title="class in com.google.android.gcm">GCMBaseIntentService</A>
+<DD>Gets the sender ids.
 </DL>
 <HR>
 <A NAME="_I_"><!-- --></A><H2>
@@ -191,7 +205,8 @@
  service.
 <DT><A HREF="./com/google/android/gcm/GCMRegistrar.html#isRegisteredOnServer(Context)"><B>isRegisteredOnServer(Context)</B></A> - 
 Static method in class com.google.android.gcm.<A HREF="./com/google/android/gcm/GCMRegistrar.html" title="class in com.google.android.gcm">GCMRegistrar</A>
-<DD>Checks whether the device was successfully registered in the server side.
+<DD>Checks whether the device was successfully registered in the server side,
+ as set by <A HREF="./com/google/android/gcm/GCMRegistrar.html#setRegisteredOnServer(Context, boolean)"><CODE>setRegisteredOnServer(Context, boolean)</CODE></A>.
 </DL>
 <HR>
 <A NAME="_O_"><!-- --></A><H2>
@@ -249,6 +264,10 @@
 <DT><A HREF="./com/google/android/gcm/GCMRegistrar.html#setRegisteredOnServer(Context, boolean)"><B>setRegisteredOnServer(Context, boolean)</B></A> - 
 Static method in class com.google.android.gcm.<A HREF="./com/google/android/gcm/GCMRegistrar.html" title="class in com.google.android.gcm">GCMRegistrar</A>
 <DD>Sets whether the device was successfully registered in the server side.
+<DT><A HREF="./com/google/android/gcm/GCMRegistrar.html#setRegisterOnServerLifespan(Context, long)"><B>setRegisterOnServerLifespan(Context, long)</B></A> - 
+Static method in class com.google.android.gcm.<A HREF="./com/google/android/gcm/GCMRegistrar.html" title="class in com.google.android.gcm">GCMRegistrar</A>
+<DD>Sets how long (in milliseconds) the <A HREF="./com/google/android/gcm/GCMRegistrar.html#isRegistered(Context)"><CODE>isRegistered(Context)</CODE></A>
+ flag is valid.
 </DL>
 <HR>
 <A NAME="_T_"><!-- --></A><H2>
diff --git a/docs/html/guide/google/gcm/client-javadoc/index.html b/docs/html/guide/google/gcm/client-javadoc/index.html
index a7753f7..26e57f6 100644
--- a/docs/html/guide/google/gcm/client-javadoc/index.html
+++ b/docs/html/guide/google/gcm/client-javadoc/index.html
@@ -2,12 +2,10 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc on Thu Jun 21 12:06:25 PDT 2012-->
+<!-- Generated by javadoc on Mon Jul 16 14:13:37 PDT 2012-->
 <TITLE>
 Generated Documentation (Untitled)
 </TITLE>
-
-
 <SCRIPT type="text/javascript">
     targetPage = "" + window.location.search;
     if (targetPage != "" && targetPage != "undefined")
diff --git a/docs/html/guide/google/gcm/client-javadoc/overview-tree.html b/docs/html/guide/google/gcm/client-javadoc/overview-tree.html
index 6ea6fb3..c9076f1 100644
--- a/docs/html/guide/google/gcm/client-javadoc/overview-tree.html
+++ b/docs/html/guide/google/gcm/client-javadoc/overview-tree.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:06:25 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:13:37 PDT 2012 -->
 <TITLE>
 Class Hierarchy
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="default.css" TITLE="Style">
 
 <SCRIPT type="text/javascript">
 function windowTitle()
diff --git a/docs/html/guide/google/gcm/demo.jd b/docs/html/guide/google/gcm/demo.jd
index 4c56373..d66cbbc 100644
--- a/docs/html/guide/google/gcm/demo.jd
+++ b/docs/html/guide/google/gcm/demo.jd
@@ -43,6 +43,9 @@
   <li><a href="{@docRoot}guide/google/gcm/client-javadoc/index.html">Client Reference</a></li>
   <li><a href="{@docRoot}guide/google/gcm/server-javadoc/index.html">Server Reference</a></li>
 </ul>
+
+<p>The sections below describe how to download the demo code and helper libraries from the SDK Manager. The demo code and helper libraries are also available at the <a href="http://code.google.com/p/gcm">open source site</a>.
+
 <h2 id="requirements">Requirements</h2>
 <p>For the web server:</p>
 <ul>
@@ -75,6 +78,8 @@
     
     
     <p>This creates a <code>gcm</code> directory under <code><em>YOUR_SDK_ROOT</em>/extras/google/</code> containing these subdirectories: <code>gcm-client</code>, <code>gcm-server</code>, <code>samples/gcm-demo-client</code>, <code>samples/gcm-demo-server</code>, and <code>samples/gcm-demo-appengine</code>.</p>
+
+<p class="note"><strong>Note:</strong> If you don't see <strong>Extras &gt; Google Cloud Messaging for Android Library</strong> in the SDK Manager, make sure you are running version 20 or higher. Be sure to restart the SDK Manager after updating it.</p>
   </li>
 
   <li>In a text editor, edit the <code>samples/gcm-demo-server/WebContent/WEB-INF/classes/api.key</code> and replace the existing text with the API key obtained above.</li>
diff --git a/docs/html/guide/google/gcm/gcm.jd b/docs/html/guide/google/gcm/gcm.jd
index 3884244..79edb9f 100644
--- a/docs/html/guide/google/gcm/gcm.jd
+++ b/docs/html/guide/google/gcm/gcm.jd
@@ -844,12 +844,14 @@
 <dt id="missing_reg"><strong>Missing Registration ID</strong></dt>
 <dd>Check that the request contains a registration ID (either in the <code>registration_id</code> parameter in a plain text message, or in the <code>registration_ids</code> field in JSON). 
 <br/>Happens when error code is <code>MissingRegistration</code>.</dd>
+
 <dt id="invalid_reg"><strong>Invalid Registration ID</strong></dt>
 <dd>Check the formatting of the registration ID that you pass to the server. Make sure it matches the registration ID the phone receives in the <code>com.google.android.c2dm.intent.REGISTRATION</code> intent and that you're not truncating it or adding additional characters. 
 <br/>Happens when error code is <code>InvalidRegistration</code>.</dd>
 <dt id="mismatched_sender"><strong>Mismatched Sender</strong></dt>
 <dd>A registration ID is tied to a certain group of senders. When an application registers for GCM usage, it must specify which senders are allowed to send messages. Make sure you're using one of those when trying to send messages to the device. If you switch to a different sender, the existing registration IDs won't work. 
 Happens when error code is <code>MismatchSenderId</code>.</dd>
+
 <dt id="unreg_device"><strong>Unregistered Device</strong></dt>
 <dd>An existing registration ID may cease to be valid in a number of scenarios, including:
 <ul>
@@ -860,25 +862,64 @@
 For all these cases, you should remove this registration ID from the 3rd-party server and stop using it to send 
 messages. 
 <br/>Happens when error code is <code>NotRegistered</code>.</dd>
+
   <dt id="big_msg"><strong>Message Too Big</strong></dt>
   <dd>The total size of the payload data that is included in a message can't exceed 4096 bytes. Note that this includes both the size of the keys as well as the values. 
 <br/>Happens when error code is <code>MessageTooBig</code>.</dd>
-  <dt id="auth_error"><strong>Authentication Error</strong></dt>
-  <dd>The sender account that you're trying to use to send a message couldn't be authenticated. Possible causes are: request could not be parsed as JSON, or it contained invalid fields (for instance, passing a string where a number was expected).  The exact failure reason is described in the response and the problem should be addressed before the request can be retried. Possible causes are: authorization header missing or with invalid syntax, invalid project ID sent as key, key valid but with GCM service disabled, and so on. Check that the Sender Auth Token you're sending inside the <code>Authorization</code> header is the correct API key associated with your project. 
-<br/>Happens when the HTTP status code is 401.
-  </dd>
-  <dt id="internal_error"><strong>Internal Server Error/Timeout</strong></dt>
-  <dd>The server encountered an error while trying to process the request or couldn't finish in time. You can retry the same request, but you MUST obey the following requirements:  
-<ul>
-  <li>Honor the <code>Retry-After</code> header if it's included in the response from the GCM server.</li>
-  <li>Implement exponential back-off in your retry mechanism. This means an exponentially increasing delay after each failed retry (e.g. if you waited one second before the first retry, wait at least two second before the next one, then 4 seconds and so on). If you're sending multiple messages, delay each one independently by an additional random amount to avoid issuing a new request for all messages at the same time.</li>
-</ul>
-Senders that cause problems risk being blacklisted.
-<br/>Happens when the HTTP status code is 500 or 503, or when the <code>error</code> field of a JSON object in the <code>results</code> array is <code>InternalServerError</code> or <code>Unavailable</code>.</dd>
 
 <dt id="ttl_error"><strong>Invalid Time To Live</strong></dt>
   <dd>The value for the Time to Live field must be an integer representing a duration in seconds between 0 and 2,419,200 (4 weeks). Happens when error code is <code>InvalidTtl</code>.
 </dd>
+
+  <dt id="auth_error"><strong>Authentication Error</strong></dt>
+  <dd>The sender account that you're trying to use to send a message couldn't be authenticated. Possible causes are: <ul>
+<li>Authorization header missing or with invalid syntax.</li>
+<li>Invalid project ID sent as key.</li>
+<li>Key valid but with GCM service disabled.</li>
+<li>Request originated from a server not whitelisted in the Server Key IPs.</li>
+
+</ul>
+Check that the token you're sending inside the <code>Authorization</code> header is the correct API key associated with your project.<br/>
+
+Happens when the HTTP status code is 401.
+
+  <dt id="timeout"><strong>Timeout</strong></dt>
+
+<dd>The server couldn't process the request in time. You should retry the
+same request, but you MUST obey the following requirements:
+
+<ul>
+
+<li>Honor the <code>Retry-After</code> header if it's included in the response from the GCM server.</li>
+        
+        
+<li>Implement exponential back-off in your retry mechanism. This means an
+exponentially increasing delay after each failed retry (e.g. if you waited one
+second before the first retry, wait at least two second before the next one,
+then 4 seconds and so on). If you're sending multiple messages, delay each one
+independently by an additional random amount to avoid issuing a new request for
+all messages at the same time.</li>
+    
+
+Senders that cause problems risk being blacklisted. 
+<br />
+Happens when the HTTP status code is 503, or when the <code>error</code> field of a JSON object in the results array is <code>Unavailable</code>.
+</dd>
+
+<dt id="internal_error"><strong>Internal Server Error</strong></dt>
+
+<dd>
+The server encountered an error while trying to process the request. You
+could retry the same request (obeying the requirements listed in the <strong>Timeout</strong>
+section), but if the error persists, please report the problem in the <a href="https://groups.google.com/forum/?fromgroups#!forum/android-gcm">android-gcm group</a>.
+<br /> 
+Senders that cause problems risk being blacklisted. 
+<br />
+Happens when the HTTP status code is 500, or when the <code>error</code> field of a JSON
+object in the results array is <code>InternalServerError</code>.
+</dd>
+
+
 </dl>
 <h4>Example responses</h4>
 <p>This section shows a few examples of responses indicating messages that were processed successfully. See <a href="#example-requests">Example requests</a> for the requests these responses are based on.</p>
diff --git a/docs/html/guide/google/gcm/gs.jd b/docs/html/guide/google/gcm/gs.jd
index 8f05d30..6f8598f 100644
--- a/docs/html/guide/google/gcm/gs.jd
+++ b/docs/html/guide/google/gcm/gs.jd
@@ -63,7 +63,7 @@
 </div>
 </div>
 
-  <li>Click  <strong>Create new Server key</strong>. The following screen appears:</li><br />
+  <li>Click  <strong>Create new Server key</strong>. Either a server key or a browser key should work. The advantage to using a server key is that it allows you to whitelist IP addresses. The following screen appears:</li><br />
 
 <div style="width:408px;margin:1.5em;">
 <div style="width:410px;border:1px solid #DDD;">
@@ -86,6 +86,9 @@
 
 <h2 id="libs">Install the Helper Libraries</h2>
 <p>To perform the steps described in the following sections, you must first install the helper libraries (reference: <a href="{@docRoot}guide/google/gcm/client-javadoc/index.html">client</a> and <a href="{@docRoot}guide/google/gcm/server-javadoc/index.html">server</a>). From the SDK Manager, install <strong>Extras &gt; Google Cloud Messaging for Android Library</strong>. This creates a <code>gcm</code> directory under <code><em>YOUR_SDK_ROOT</em>/extras/google/</code> containing these subdirectories: <code>gcm-client</code>, <code>gcm-server</code>, <code>samples/gcm-demo-client</code>, <code>samples/gcm-demo-server</code>, and <code>samples/gcm-demo-appengine</code>.</p>
+
+<p class="note"><strong>Note:</strong> If you don't see <strong>Extras &gt; Google Cloud Messaging for Android Library</strong> in the SDK Manager, make sure you are running version 20 or higher. Be sure to restart the SDK Manager after updating it.</p>
+
 <h2 id="android-app">Writing the Android Application</h2>
 <p>This section describes the steps involved in writing an Android application that uses GCM.</p>
 <h4>Step 1: Copy the gcm.jar file into your application classpath</h4>
@@ -175,14 +178,14 @@
   <li>Create a servlet (or other server-side mechanism) that can be used by the Android application to send the registration ID received by GCM . The application might also need to send other information&mdash;such as the user's email address or username&mdash;so that the server can associate the registration ID with the user owning the device.</li>
   <li>Similarly, create a servlet used to unregister registration IDs.<br>
     </li>
-  <li>When the server needs to send a message to the device, it can use the <code>com.google.android.gcm.server.Sender</code> helper class from the GCM library. For example:</li>
+<li>When the server needs to send a message to the registration ID, it can use the <code>com.google.android.gcm.server.Sender</code> helper class from the GCM library. For example:</li>
 </ol>
 
 <pre class="prettyprint pretty-java">import com.google.android.gcm.server.*;
 
 Sender sender = new Sender(myApiKey);
-Message message = new Message.Builder(regId).build();
-Result result = sender.send(message, 5);</pre>
+Message message = new Message.Builder().build();
+MulticastResult result = sender.send(message, devices, 5);</pre>
 
 <p> The snippet above does the following:
 <ul>
diff --git a/docs/html/guide/google/gcm/server-javadoc/allclasses-frame.html b/docs/html/guide/google/gcm/server-javadoc/allclasses-frame.html
index d2fe43d..cf7dc28 100644
--- a/docs/html/guide/google/gcm/server-javadoc/allclasses-frame.html
+++ b/docs/html/guide/google/gcm/server-javadoc/allclasses-frame.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:04:57 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:12:10 PDT 2012 -->
 <TITLE>
 All Classes
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="default.css" TITLE="Style">
 
 
 </HEAD>
diff --git a/docs/html/guide/google/gcm/server-javadoc/allclasses-noframe.html b/docs/html/guide/google/gcm/server-javadoc/allclasses-noframe.html
index 0f0dc96..299085c 100644
--- a/docs/html/guide/google/gcm/server-javadoc/allclasses-noframe.html
+++ b/docs/html/guide/google/gcm/server-javadoc/allclasses-noframe.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:04:57 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:12:10 PDT 2012 -->
 <TITLE>
 All Classes
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="default.css" TITLE="Style">
 
 
 </HEAD>
diff --git a/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/Constants.html b/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/Constants.html
index 09ac011..7384dfd 100644
--- a/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/Constants.html
+++ b/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/Constants.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:04:56 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:12:09 PDT 2012 -->
 <TITLE>
 Constants
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../default.css" TITLE="Style">
 
 <SCRIPT type="text/javascript">
 function windowTitle()
@@ -125,6 +125,15 @@
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/google/android/gcm/server/Constants.html#ERROR_INTERNAL_SERVER_ERROR">ERROR_INTERNAL_SERVER_ERROR</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A particular message could not be sent because the GCM servers encountered
+ an error.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../../../com/google/android/gcm/server/Constants.html#ERROR_INVALID_REGISTRATION">ERROR_INVALID_REGISTRATION</A></B></CODE>
 
 <BR>
@@ -133,6 +142,14 @@
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
 <CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../../com/google/android/gcm/server/Constants.html#ERROR_INVALID_TTL">ERROR_INVALID_TTL</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Time to Live value passed is less than zero or more than maximum.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;java.lang.String</CODE></FONT></TD>
 <TD><CODE><B><A HREF="../../../../../com/google/android/gcm/server/Constants.html#ERROR_MESSAGE_TOO_BIG">ERROR_MESSAGE_TOO_BIG</A></B></CODE>
 
 <BR>
@@ -185,8 +202,8 @@
 <TD><CODE><B><A HREF="../../../../../com/google/android/gcm/server/Constants.html#ERROR_UNAVAILABLE">ERROR_UNAVAILABLE</A></B></CODE>
 
 <BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Used to indicate that a particular message could not be sent because
- the GCM servers were not available.</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A particular message could not be sent because the GCM servers were not
+ available.</TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
 <TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -547,15 +564,41 @@
 <PRE>
 public static final java.lang.String <B>ERROR_UNAVAILABLE</B></PRE>
 <DL>
-<DD>Used to indicate that a particular message could not be sent because
- the GCM servers were not available. Used only on JSON requests, as in
- plain text requests unavailability is indicated by a 503 response.
+<DD>A particular message could not be sent because the GCM servers were not
+ available. Used only on JSON requests, as in plain text requests
+ unavailability is indicated by a 503 response.
 <P>
 <DL>
 <DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.google.android.gcm.server.Constants.ERROR_UNAVAILABLE">Constant Field Values</A></DL>
 </DL>
 <HR>
 
+<A NAME="ERROR_INTERNAL_SERVER_ERROR"><!-- --></A><H3>
+ERROR_INTERNAL_SERVER_ERROR</H3>
+<PRE>
+public static final java.lang.String <B>ERROR_INTERNAL_SERVER_ERROR</B></PRE>
+<DL>
+<DD>A particular message could not be sent because the GCM servers encountered
+ an error. Used only on JSON requests, as in plain text requests internal
+ errors are indicated by a 500 response.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.google.android.gcm.server.Constants.ERROR_INTERNAL_SERVER_ERROR">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="ERROR_INVALID_TTL"><!-- --></A><H3>
+ERROR_INVALID_TTL</H3>
+<PRE>
+public static final java.lang.String <B>ERROR_INVALID_TTL</B></PRE>
+<DL>
+<DD>Time to Live value passed is less than zero or more than maximum.
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../../../constant-values.html#com.google.android.gcm.server.Constants.ERROR_INVALID_TTL">Constant Field Values</A></DL>
+</DL>
+<HR>
+
 <A NAME="TOKEN_MESSAGE_ID"><!-- --></A><H3>
 TOKEN_MESSAGE_ID</H3>
 <PRE>
diff --git a/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/InvalidRequestException.html b/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/InvalidRequestException.html
index 4b3271c..56de783 100644
--- a/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/InvalidRequestException.html
+++ b/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/InvalidRequestException.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:04:56 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:12:10 PDT 2012 -->
 <TITLE>
 InvalidRequestException
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../default.css" TITLE="Style">
 
 <SCRIPT type="text/javascript">
 function windowTitle()
diff --git a/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/Message.Builder.html b/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/Message.Builder.html
index 5952e87..7d5110c 100644
--- a/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/Message.Builder.html
+++ b/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/Message.Builder.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:04:57 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:12:10 PDT 2012 -->
 <TITLE>
 Message.Builder
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../default.css" TITLE="Style">
 
 <SCRIPT type="text/javascript">
 function windowTitle()
diff --git a/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/Message.html b/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/Message.html
index 0773686..37a8a74 100644
--- a/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/Message.html
+++ b/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/Message.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:04:57 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:12:10 PDT 2012 -->
 <TITLE>
 Message
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../default.css" TITLE="Style">
 
 <SCRIPT type="text/javascript">
 function windowTitle()
diff --git a/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/MulticastResult.html b/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/MulticastResult.html
index f9df609..21752ca 100644
--- a/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/MulticastResult.html
+++ b/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/MulticastResult.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:04:57 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:12:10 PDT 2012 -->
 <TITLE>
 MulticastResult
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../default.css" TITLE="Style">
 
 <SCRIPT type="text/javascript">
 function windowTitle()
diff --git a/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/Result.html b/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/Result.html
index 14d4b34..512b8f5 100644
--- a/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/Result.html
+++ b/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/Result.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:04:57 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:12:10 PDT 2012 -->
 <TITLE>
 Result
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../default.css" TITLE="Style">
 
 <SCRIPT type="text/javascript">
 function windowTitle()
diff --git a/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/Sender.html b/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/Sender.html
index 4f1a2ac..5224e15 100644
--- a/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/Sender.html
+++ b/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/Sender.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:04:57 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:12:10 PDT 2012 -->
 <TITLE>
 Sender
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../default.css" TITLE="Style">
 
 <SCRIPT type="text/javascript">
 function windowTitle()
diff --git a/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/package-frame.html b/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/package-frame.html
index 8312f46..9f099b3 100644
--- a/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/package-frame.html
+++ b/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/package-frame.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:04:57 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:12:10 PDT 2012 -->
 <TITLE>
 com.google.android.gcm.server
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../default.css" TITLE="Style">
 
 
 </HEAD>
diff --git a/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/package-summary.html b/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/package-summary.html
index 27b0564..eddcca1 100644
--- a/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/package-summary.html
+++ b/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/package-summary.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:04:57 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:12:10 PDT 2012 -->
 <TITLE>
 com.google.android.gcm.server
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../default.css" TITLE="Style">
 
 <SCRIPT type="text/javascript">
 function windowTitle()
diff --git a/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/package-tree.html b/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/package-tree.html
index 81efcef..d3d1c43 100644
--- a/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/package-tree.html
+++ b/docs/html/guide/google/gcm/server-javadoc/com/google/android/gcm/server/package-tree.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:04:57 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:12:10 PDT 2012 -->
 <TITLE>
 com.google.android.gcm.server Class Hierarchy
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../default.css" TITLE="Style">
 
 <SCRIPT type="text/javascript">
 function windowTitle()
diff --git a/docs/html/guide/google/gcm/server-javadoc/constant-values.html b/docs/html/guide/google/gcm/server-javadoc/constant-values.html
index 5efe6f5..66df664 100644
--- a/docs/html/guide/google/gcm/server-javadoc/constant-values.html
+++ b/docs/html/guide/google/gcm/server-javadoc/constant-values.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:04:57 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:12:10 PDT 2012 -->
 <TITLE>
 Constant Field Values
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="default.css" TITLE="Style">
 
 <SCRIPT type="text/javascript">
 function windowTitle()
@@ -107,12 +107,24 @@
 <TD ALIGN="right"><CODE>"DeviceQuotaExceeded"</CODE></TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.google.android.gcm.server.Constants.ERROR_INTERNAL_SERVER_ERROR"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/google/android/gcm/server/Constants.html#ERROR_INTERNAL_SERVER_ERROR">ERROR_INTERNAL_SERVER_ERROR</A></CODE></TD>
+<TD ALIGN="right"><CODE>"InternalServerError"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <A NAME="com.google.android.gcm.server.Constants.ERROR_INVALID_REGISTRATION"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
 <CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
 <TD ALIGN="left"><CODE><A HREF="com/google/android/gcm/server/Constants.html#ERROR_INVALID_REGISTRATION">ERROR_INVALID_REGISTRATION</A></CODE></TD>
 <TD ALIGN="right"><CODE>"InvalidRegistration"</CODE></TD>
 </TR>
 <TR BGCOLOR="white" CLASS="TableRowColor">
+<A NAME="com.google.android.gcm.server.Constants.ERROR_INVALID_TTL"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
+<CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
+<TD ALIGN="left"><CODE><A HREF="com/google/android/gcm/server/Constants.html#ERROR_INVALID_TTL">ERROR_INVALID_TTL</A></CODE></TD>
+<TD ALIGN="right"><CODE>"InvalidTtl"</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
 <A NAME="com.google.android.gcm.server.Constants.ERROR_MESSAGE_TOO_BIG"><!-- --></A><TD ALIGN="right"><FONT SIZE="-1">
 <CODE>public&nbsp;static&nbsp;final&nbsp;java.lang.String</CODE></FONT></TD>
 <TD ALIGN="left"><CODE><A HREF="com/google/android/gcm/server/Constants.html#ERROR_MESSAGE_TOO_BIG">ERROR_MESSAGE_TOO_BIG</A></CODE></TD>
diff --git a/docs/html/guide/google/gcm/server-javadoc/default.css b/docs/html/guide/google/gcm/server-javadoc/default.css
new file mode 100644
index 0000000..2513e69
--- /dev/null
+++ b/docs/html/guide/google/gcm/server-javadoc/default.css
@@ -0,0 +1,4005 @@
+/* color definitions */
+/* 16 column layout */
+/* clearfix idiom */
+/* common mixins */
+/* page layout + top-level styles */
+::-webkit-selection,
+::-moz-selection,
+::selection {
+  background-color: #0099cc;
+  color: #fff; }
+
+html, body {
+  height: 100%;
+  margin: 0;
+  padding: 0;
+  background-color:#F9F9F9;
+  -webkit-font-smoothing: antialiased;
+  /* prevent subpixel antialiasing, which thickens the text */
+  /* text-rendering: optimizeLegibility; */
+  /* turned off ligatures due to bug 5945455 */ }
+
+body {
+  color: #222;
+  font: 14px/19px Roboto, sans-serif;
+  font-weight: 400;
+  letter-spacing:.1;
+  padding:0 10px; }
+
+#page-container {
+  width: 940px;
+  margin: 0 40px; }
+
+#page-header {
+  height: 80px;
+  margin-bottom: 20px;
+  font-size: 48px;
+  line-height: 48px;
+  font-weight: 100;
+  padding-left: 10px; }
+  #page-header a {
+    display: block;
+    position: relative;
+    top: 20px;
+    text-decoration: none;
+    color: #555555 !important; }
+
+#main-row {
+  display: inline-block; }
+  #main-row:after {
+    content: ".";
+    display: block;
+    height: 0;
+    clear: both;
+    visibility: hidden; }
+  * html #main-row {
+    height: 1px; }
+
+#page-footer {
+  margin-left: 190px;
+  margin-top: 80px;
+  color: #999999;
+  padding-bottom: 40px;
+  font-size: 12px;
+  line-height: 15px; }
+  #page-footer a {
+    color: #777777; }
+  #page-footer #copyright {
+    margin-bottom: 10px; }
+
+#nav-container {
+  width: 160px;
+  min-height: 10px;
+  margin-right: 20px;
+  float: left; }
+
+#nav {
+  margin:0;
+  padding:0 0 30px;
+}
+
+#side-nav {
+  min-height:5px; /* silly way to avoid doc floating left when nav goes fixed */
+  margin-bottom:1px;
+}
+#devdoc-nav {
+  outline:none;
+  width:auto;
+  margin: 20px 0 0; }
+  
+#devdoc-nav h2 {
+  border:0;
+}
+
+#devdoc-nav.fixed {
+  position: fixed;
+  margin:0;
+  top: 20px; }
+
+#content {
+  width: 760px;
+  float: left; }
+
+a:hover,
+acronym:hover {
+  color: #7aa1b0 !important; }
+
+a:focus,
+a:active {
+  color: #33b5e5 !important; }
+
+img {
+  border: none; }
+#jd-content img {
+  margin-bottom:15px;
+}
+
+ul {
+  margin: 0;
+  padding: 0; }
+
+strong {
+  font-weight: 500; }
+
+em {
+  font-style: italic; }
+
+acronym {
+  border-bottom: 1px dotted #555555;
+  cursor: help; }
+
+acronym:hover {
+  border-bottom-color: #7aa1b0; }
+
+img.with-shadow,
+video.with-shadow {
+  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25); }
+
+/* disclosures mixin */
+/* content layout */
+.layout-content-row {
+  display: inline-block;
+  margin-bottom: 10px; }
+  .layout-content-row:after {
+    content: ".";
+    display: block;
+    height: 0;
+    clear: both;
+    visibility: hidden; }
+  * html .layout-content-row {
+    height: 1px; }
+
+.layout-content-col {
+  float: left;
+  margin-left: 20px; }
+  .layout-content-col:first-child {
+    margin-left: 0; }
+  .layout-content-col h3,
+  .layout-content-col h4 {
+    margin-top:0; }
+
+.layout-content-col.span-1 {
+  width: 40px; }
+
+.layout-content-col.span-2 {
+  width: 100px; }
+
+.layout-content-col.span-3 {
+  width: 160px; }
+
+.layout-content-col.span-4 {
+  width: 220px; }
+
+.layout-content-col.span-5 {
+  width: 280px; }
+
+.layout-content-col.span-6 {
+  width: 340px; }
+
+.layout-content-col.span-7 {
+  width: 400px; }
+
+.layout-content-col.span-8 {
+  width: 460px; }
+
+.layout-content-col.span-9 {
+  width: 520px; }
+
+.layout-content-col.span-10 {
+  width: 580px; }
+
+.layout-content-col.span-11 {
+  width: 640px; }
+
+.layout-content-col.span-12 {
+  width: 700px; }
+
+.layout-content-col.span-13 {
+  width: 760px; }
+
+.vspace.size-1 {
+  height: 10px; }
+
+.vspace.size-2 {
+  height: 20px; }
+
+.vspace.size-3 {
+  height: 30px; }
+
+.vspace.size-4 {
+  height: 40px; }
+
+.vspace.size-5 {
+  height: 50px; }
+
+.vspace.size-6 {
+  height: 60px; }
+
+.vspace.size-7 {
+  height: 70px; }
+
+.vspace.size-8 {
+  height: 80px; }
+
+.vspace.size-9 {
+  height: 90px; }
+
+.vspace.size-10 {
+  height: 100px; }
+
+.vspace.size-11 {
+  height: 110px; }
+
+.vspace.size-12 {
+  height: 120px; }
+
+.vspace.size-13 {
+  height: 130px; }
+
+.vspace.size-14 {
+  height: 140px; }
+
+.vspace.size-15 {
+  height: 150px; }
+
+.vspace.size-16 {
+  height: 160px; }
+
+/* nav */
+#nav {
+  /* section header divs */
+  /* expanded section header divs */
+  /* sublinks */ }
+  #nav li {
+    list-style-type: none;
+    font-size: 14px;
+    margin:0;
+    padding:0;
+    line-height: 15px; }
+  #nav a {
+    color: #555555;
+    text-decoration: none; }
+  #nav .nav-section-header {
+    position: relative;
+    margin-bottom: 1px;
+    padding: 0 30px 0 0; }
+  #nav li.selected a, #nav li.selected > .nav-section-header > a {
+    color: #09C;
+  }
+  #nav li.selected ul li a {
+  /* don't highlight child items */
+    color: #555555; }
+  #nav .nav-section .nav-section .nav-section-header {
+    /* no white line between second level sections */
+    margin-bottom: 0; }
+    /* section header links */
+    #nav > li > div > a {
+      display: block;
+      color: #333333;
+      font-weight: 500;
+      padding: 10px 0 10px 10px; }
+    #nav .nav-section-header:after {
+      content: '';
+      background: transparent url(../images/styles/disclosure_down.png) no-repeat scroll 50% 50%;
+      width: 34px;
+      height: 34px;
+      display: block;
+      position: absolute;
+      top: 0;
+      right: 0; }
+    #nav .nav-section-header.empty:after {
+      display: none; }
+    /* nested nav headers */
+    #nav .nav-section .nav-section {
+      position: relative;
+      padding: 0;
+      margin: 0; }
+    #nav .nav-section li a {
+    /* first gen child (2nd level li) */
+      display:block;
+      font-weight: normal;
+      text-transform: none;
+      padding: 7px 5px 7px 10px;
+       }
+    #nav .nav-section li li a {
+    /* second gen child (3rd level li) */
+      padding: 5px 5px 5px 10px;
+       }
+  #nav li.expanded .nav-section-header {
+    background:#e9e9e9;
+    background: rgba(0, 0, 0, 0.05); }
+  #nav li.expanded li .nav-section-header {
+    background: transparent; }
+  #nav li.expanded li ul {
+  /* 3rd level ul */
+    padding:0 10px;
+  }
+    #nav li.expanded > .nav-section-header:after {
+      content: '';
+      background: transparent url(../images/styles/disclosure_up.png) no-repeat scroll 50% 50%;
+      width: 34px;
+      height: 34px; }
+  #nav li ul {
+    display:none;
+    overflow: hidden;
+    margin: 0; }
+    #nav li ul.animate-height-in {
+      -webkit-transition: height 0.25s ease-in;
+      -moz-transition: height 0.25s ease-in;
+      transition: height 0.25s ease-in; }
+    #nav li ul.animate-height-out {
+      -webkit-transition: height 0.25s ease-out;
+      -moz-transition: height 0.25s ease-out;
+      transition: height 0.25s ease-out; }
+    #nav li ul li {
+      padding: 0; }
+      #nav li li li {
+        padding: 0; }
+  #nav li.expanded ul {
+    }
+    #nav li ul > li {
+      padding:0;
+    }
+    #nav li ul > li:last-child {
+      padding-bottom:5px;
+    }
+    #nav li.expanded ul > li {
+      background:#efefef;
+      background: rgba(0, 0, 0, 0.03); }
+    #nav li.expanded ul > li li {
+      background:inherit; }
+
+.new,
+.new-child {
+  font-size: .78em;
+  font-weight: bold;
+  color: #ff3d3d;
+  vertical-align:top;
+  white-space:nowrap;
+}
+
+/* content header */
+.content-header {
+  height: 30px;
+  margin:20px 0 25px;
+  padding:0 0 10px;}
+.content-header.just-links {
+  margin-bottom:0;
+  padding-bottom:0;}
+    
+.content-header h1 {
+  color:#000;
+  margin:0;
+  border-bottom:0;
+  padding:0;
+}
+
+.content-footer {
+  border-top: 1px solid #ccc;
+  margin-top: 10px;
+  padding-top:10px;
+  height: 30px; }
+
+.content-footer .col-9 {
+  margin-left:0;
+}
+.content-footer .col-4 {
+  margin-right:0;
+}
+.content-footer.wrap {
+  width:940px;
+}
+
+.paging-links {
+  position: relative; }
+  .paging-links a {
+    position: absolute; }
+  .paging-links a,
+  .training-nav-top a {
+    font-size: 14px;
+    line-height: 30px;
+    color: #555555;
+    text-decoration: none;
+    text-transform: uppercase; }
+  .paging-links .prev-page-link,
+  .training-nav-top .prev-page-link {
+    left: -5px; }
+    .paging-links .prev-page-link:before,
+    .training-nav-top .prev-page-link:before {
+      content: '';
+      background: transparent url(../images/styles/disclosure_left.png) no-repeat scroll 50% 50%;
+      width: 10px;
+      height: 10px;
+      display: inline-block;
+      margin-right: 5px; }
+  .paging-links .next-page-link,
+  .training-nav-top .next-page-link,
+    .training-nav-top .start-class-link,
+    .training-nav-top .start-course-link {
+    right: 10px; }
+    .next-page-link:after,
+    .start-class-link:after,
+    .start-course-link:after,
+    .next-class-link:after {
+      content: '';
+      background: transparent url(../images/styles/disclosure_right.png) no-repeat scroll 50% 50%;
+      width: 10px;
+      height: 10px;
+      display: inline-block;
+      margin-left: 5px; }
+      
+      
+  .training-nav-top a {
+    display:block;
+    float:left;
+    width:108px;
+    height:28px;
+    padding: 8px 15px;
+    line-height:28px;
+    text-align:center;
+    border:1px solid #DADADA;
+    border-bottom:0;
+  }
+      
+  .training-nav-top a.next-page-link {
+    border-left:0;
+    width:109px;
+  }
+      
+  .training-nav-top a.disabled,
+  .content-footer a.disabled {
+    color:#999;
+  }
+      
+  .training-nav-top a.disabled:hover,
+  .content-footer a.disabled:hover {
+    cursor:default;
+    color:#999 !important;
+  }
+      
+  .training-nav-top a.start-class-link,
+  .training-nav-top a.start-course-link {
+    width:248px;
+  }
+  
+  .hide {
+    display:none !important;
+  }
+  
+  .content-footer.next-class {
+    display:block;
+    border:0;
+    margin-top:0;
+    padding-top:0;
+  }
+  
+  .content-footer.next-class a.next-class-link {
+    display:block;
+    float:right;
+    text-transform:uppercase;
+  }
+
+/* content body */
+@-webkit-keyframes glowheader {
+  from {
+    background-color: #33b5e5;
+    color: #000;
+    border-bottom-color: #000; }
+
+  to {
+    background-color: transparent;
+    color: #33b5e5;
+    border-bottom-color: #33b5e5; } }
+
+@-moz-keyframes glowheader {
+  from {
+    background-color: #33b5e5;
+    color: #000;
+    border-bottom-color: #000; }
+
+  to {
+    background-color: transparent;
+    color: #33b5e5;
+    border-bottom-color: #33b5e5; } }
+
+@keyframes glowheader {
+  from {
+    background-color: #33b5e5;
+    color: #000;
+    border-bottom-color: #000; }
+
+  to {
+    background-color: transparent;
+    color: #33b5e5;
+    border-bottom-color: #33b5e5; } }
+
+h2:target,
+h3:target {
+    -webkit-animation-name: glowheader;
+    -moz-animation-name: glowheader;
+    animation-name: glowheader;
+    -webkit-animation-duration: 0.7s;
+    -moz-animation-duration: 0.7s;
+    animation-duration: 0.7s;
+    -webkit-animation-timing-function: ease-out;
+    -moz-animation-timing-function: ease-out;
+    animation-timing-function: ease-out; }
+
+.design ol h4 {
+  margin-bottom:0;
+}
+.design ol {
+  counter-reset: item; }
+  .design ol li {
+    font-size: 14px;
+    line-height: 20px;
+    list-style-type: none;
+    position: relative; }
+    .design ol li:before {
+      content: counter(item) ". ";
+      counter-increment: item;
+      position: absolute;
+      left: -20px;
+      top: 0; }
+    .design ol li.value-1:before {
+      content: "1. "; }
+    .design ol li.value-2:before {
+      content: "2. "; }
+    .design ol li.value-3:before {
+      content: "3. "; }
+    .design ol li.value-4:before {
+      content: "4. "; }
+    .design ol li.value-5:before {
+      content: "5. "; }
+    .design ol li.value-6:before {
+      content: "6. "; }
+    .design ol li.value-7:before {
+      content: "7. "; }
+    .design ol li.value-8:before {
+      content: "8. "; }
+    .design ol li.value-9:before {
+      content: "9. "; }
+    .design ol li.value-10:before {
+      content: "10. "; }
+.design .with-callouts ol li {
+  list-style-position: inside;
+  margin-left: 0; }
+  .design .with-callouts ol li:before {
+    display: inline;
+    left: -20px;
+    float: left;
+    width: 17px;
+    color: #33b5e5;
+    font-weight: 500; }
+
+/* special list items */
+li.no-bullet {
+  list-style-type: none !important; }
+li.no-bullet *{
+  margin:0; }
+
+.design li.with-icon {
+  position: relative;
+  margin-left: 20px;
+  min-height: 30px; }
+  .design li.with-icon p {
+    margin-left: 0 !important; }
+  .design li.with-icon:before {
+    position: absolute;
+    left: -40px;
+    top: 0;
+    content: '';
+    width: 30px;
+    height: 30px; }
+  .design li.with-icon.tablet:before {
+    background-image: url(../images/styles/ico_phone_tablet.png); }
+  .design li.with-icon.web:before {
+    background-image: url(../images/styles/ico_web.png); }
+  .design li.with-icon.action:before {
+    background-image: url(../images/styles/ico_action.png); }
+  .design li.with-icon.use:before {
+    background-image: url(../images/styles/ico_use.png); }
+
+/* figures and callouts */
+.figure {
+  position: relative; }
+  .figure.pad-below {
+    margin-bottom: 20px; }
+  .figure .figure-callout {
+    position: absolute;
+    color: #fff;
+    font-weight: 500;
+    font-size: 16px;
+    line-height: 23px;
+    text-align: center;
+    background: transparent url(../images/styles/callout.png) no-repeat scroll 50% 50%;
+    padding-right: 2px;
+    width: 30px;
+    height: 29px;
+    z-index: 1000; }
+    .figure .figure-callout.top {
+      top: -9px; }
+    .figure .figure-callout.right {
+      right: -5px; }
+
+.figure-caption {
+  margin: 0 10px 20px 0;
+  font-size: 14px;
+  line-height: 20px;
+  font-style: italic; }
+
+/* rows of figures */
+.figure-row {
+  font-size: 0;
+  line-height: 0;
+  /* to prevent space between figures */ }
+  .figure-row .figure {
+    display: inline-block;
+    vertical-align: top; }
+  .figure-row .figure + .figure {
+    margin-left: 10px;
+    /* reintroduce space between figures */ }
+
+/* video  containers */
+.framed-galaxynexus-land-span-13 {
+  background: transparent url(../images/styles/device_galaxynexus_blank_land_span13.png) no-repeat
+scroll top left;
+  padding: 42px 122px 62px 126px;
+  overflow: hidden; }
+  .framed-galaxynexus-land-span-13, .framed-galaxynexus-land-span-13 video,
+.framed-galaxynexus-land-span-13 img {
+    width: 512px;
+    height: 286px; }
+
+.framed-galaxynexus-port-span-9 {
+  background: transparent url(../images/styles/device_galaxynexus_blank_port_span9.png) no-repeat
+scroll top left;
+  padding: 95px 122px 107px 124px;
+  overflow: hidden; }
+  .framed-galaxynexus-port-span-9, .framed-galaxynexus-port-span-9 video,
+.framed-galaxynexus-port-span-9 img {
+    width: 274px;
+    height: 488px; }
+
+.framed-galaxynexus-port-span-5 {
+  background: transparent url(../images/styles/device_galaxynexus_blank_port_span5.png) no-repeat
+scroll top left;
+  padding: 75px 31px 76px 33px;
+  overflow: hidden; }
+  .framed-galaxynexus-port-span-5, .framed-galaxynexus-port-span-5 video,
+.framed-galaxynexus-port-span-5 img {
+    width: 216px;
+    height: 384px; }
+
+/* landing page disclosures */
+.landing-page-link {
+  text-decoration: none;
+  font-weight: 500;
+  color: #333333; }
+  .landing-page-link:after {
+    content: '';
+    background: transparent url(../images/styles/disclosure_right.png) no-repeat scroll 50% 50%;
+    width: 10px;
+    height: 10px;
+    display: inline-block;
+    margin-left: 5px; }
+
+/* tooltips */
+.tooltip-box {
+  position: absolute;
+  background-color: rgba(0, 0, 0, 0.9);
+  border-radius: 2px;
+  font-size: 14px;
+  line-height: 20px;
+  color: #fff;
+  padding: 6px 10px;
+  max-width: 250px;
+  z-index: 10000; }
+  .tooltip-box.below:after {
+    position: absolute;
+    content: '';
+    line-height: 0;
+    display: block;
+    top: -10px;
+    left: 5px;
+    border: 5px solid transparent;
+    border-bottom-color: rgba(0, 0, 0, 0.9); }
+
+/* video note */
+.video-instructions {
+  margin-top: 10px;
+  margin-bottom: 10px; }
+  .video-instructions:before {
+    content: '';
+    background: transparent url(../images/styles/ico_movie_inline.png) no-repeat scroll top left;
+    display: inline-block;
+    width: 12px;
+    height: 12px;
+    margin-right: 8px; }
+  .video-instructions:after {
+    content: 'Click device screen to replay movie.'; }
+
+/* download buttons */
+.download-button {
+  display: block;
+  margin-bottom: 5px;
+  text-decoration: none;
+  background-color: #33b5e5;
+  color: #fff !important;
+  font-weight: 500;
+  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.12);
+  padding: 6px 12px;
+  border-radius: 2px; }
+  .download-button:hover, .download-button:focus {
+    background-color: #0099cc;
+    color: #fff !important; }
+  .download-button:active {
+    background-color: #006699; }
+
+/* UI tables and other things found in Writing style and Settings pattern */
+.ui-table {
+  width: 100%;
+  background-color: #282828;
+  color: #fff;
+  border-radius: 2px;
+  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);
+  border-collapse: separate; }
+  .ui-table th,
+  .ui-table td {
+    padding: 5px 10px;
+    background-color: inherit; 
+    border:0;}
+  .ui-table thead th {
+    font-weight: bold; }
+  .ui-table tfoot td {
+    border-top: 1px solid #494949;
+    border-right: 1px solid #494949;
+    text-align: center; }
+    .ui-table tfoot td:last-child {
+      border-right: 0; }
+
+.layout-with-list-item-margins {
+  margin-left: 30px !important; }
+
+.emulate-content-left-padding {
+  margin-left: 10px; }
+
+.do-dont-label {
+  margin-bottom: 10px;
+  padding-left: 20px;
+  background: transparent none no-repeat scroll 0px 3px; }
+  .do-dont-label.bad {
+    background-image: url(../images/styles/ico_wrong.png); }
+  .do-dont-label.good {
+    background-image: url(../images/styles/ico_good.png); }
+    
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/***** PREVIOUSLY style.css ******************/
+
+
+
+
+
+@media screen, projection, print {
+[dir='rtl'] {
+    direction: rtl;
+}
+html {
+    line-height: 20px;
+}
+pre, table, input, textarea, code {
+    font-size: 1em;
+}
+address, abbr, cite {
+    font-style: normal;
+}
+[dir='rtl'] th {
+    text-align: right;
+}
+html[lang^=ja] blockquote, html[lang^=ja] q, html[lang^=ko] blockquote, html[lang^=ko] q,
+html[lang^=zh] blockquote, html[lang^=zh] q {
+    font-style: normal;
+}
+q {
+    font-style: italic;
+}
+fieldset, iframe, img {
+    border: 0;
+}
+img { 
+	-ms-interpolation-mode: bicubic;
+	vertical-align: middle;
+	max-width: 100%;
+}
+q {
+    quotes: none;
+}
+sup, sub {
+    font-size: 11px;
+    line-height: 0;
+}
+}
+
+@media screen, projection {
+
+table, fieldset {
+    margin: 0;
+}
+h1 {
+    color:#333;
+    font-size: 22px;
+    margin: 20px 0 20px;
+    padding:0 0 10px;
+}
+h1, h2 {
+    line-height: 32px;
+}
+h1.short {
+  margin-right:320px;
+}
+h1.short {
+  margin-right:320px;
+}
+h1.super {
+    font-size: 37px;	
+}
+h2 {
+    color:#333;
+    font-size: 20px;
+    margin: 20px 0 20px;
+    padding:0;
+}
+h3 {
+    color:#333;
+    font-size: 18px;
+}
+h3, h4 {
+    color:#333;
+    line-height: 20px;
+    margin: 10px 0;
+}
+h4 {
+	font-size: 16px;
+}
+h5 {
+	font-size: 14px;	
+}
+h5, h6 {
+	margin: 5px 0;
+}
+h6 {
+	font-size: 12px;	
+}
+hr { /* applied to the bottom of h2 elements */
+	height: 1px;
+	margin: 5px 0 20px;
+	border: 0;
+	background: #ccc;
+}
+p, pre, table, form {
+    margin: 0 0 15px;
+}
+small {
+	font-size: 11.5px;
+	color: #000;
+}
+ul, ol {
+    margin: 0 0 15px 18px;
+    padding: 0;
+}
+[dir='rtl'] ul, [dir='rtl'] ol {
+    margin: 10px 30px 10px 10px;
+}
+ul ul, ul ol, ol ul, ol ol {
+    margin-bottom: 0;
+    margin-top: 0;
+}
+li {
+  margin:0 0 4px;
+}
+dd {
+  margin:0 0 10px 30px;
+}
+dd p {
+  margin:10px 0 0;
+}
+ul p,
+ol p {
+  margin:10px 0 0;
+}
+pre strong, pre b, a strong, a b, a code {
+    color: inherit;
+}
+pre, code {
+    color: #060;
+    font: 14px/1.5 'courier new', courier, monospace;
+}
+code {
+    font-weight:bold;
+}
+
+legend {
+    display: none;
+}
+a:link, a:visited {
+  color: #258aaf;
+  text-decoration: none;
+}
+a:focus, a:hover, a:active {
+  color: #33B5E5;
+  text-decoration: none;
+}
+strong, b {
+  font-weight:bold;
+  color: #222;
+}
+table {
+  border-collapse: collapse;
+  border-spacing: 0;
+  border:0;
+  margin: .5em 1em 1em 0;
+  width:100%; /* consistent table widths; within IE's quirks */
+  background-color:#f7f7f7;
+}
+th, td {
+  padding: 4px 12px;
+  vertical-align: top;
+  text-align: left;
+}
+td {
+  background-color:inherit;
+  border:solid 1px #DDD;
+}
+th {
+  background-color: #999;
+  color: #fff;
+  border:solid 1px #DDD;
+  font-weight: normal;
+}
+tr:first-of-type th:first-of-type:empty {
+    visibility: hidden;
+}
+/* --------------------------------------------------------------------------
+Footer
+*/
+.line {
+    clear: both;
+    background: #acbc00;
+    background: -moz-linear-gradient(top, #acbc00 0, #acbc00 50%, #bdde00 50%, #bdde00 100%);
+    background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #acbc00),
+color-stop(50%, #acbc00), color-stop(50%, #bdde00), color-stop(100%, #bdde00));
+    background: -webkit-linear-gradient(top, #acbc00 0, #acbc00 50%, #bdde00 50%, #bdde00 100%);
+    background: -o-linear-gradient(top, #acbc00 0, #acbc00 50%, #bdde00 50%, #bdde00 100%);
+    background: -ms-linear-gradient(top, #acbc00 0, #acbc00 50%, #bdde00 50%, #bdde00 100%);
+    background: linear-gradient(top, #acbc00 0, #acbc00 50%, #bdde00 50%, #bdde00 100%);
+    height: 2px;
+    margin-top: 150px;
+    position: relative;
+    z-index: 11;
+}
+#footer {
+    font-size:11px;
+    clear: both;
+    color: #999;
+    padding: 15px 0;
+    margin-top:10px;
+    width:auto;
+}
+#footer-local ul {
+	list-style: none;
+	margin: 5px 0 30px 0;
+}
+#footer-local li {
+    display: inline;
+}
+#footer-local li+li:before {
+    content: '|';
+    padding: 0 3px;
+	color: #e5e5e5;
+}
+#footer-global {
+    padding: 10px 15px;
+	background: #f5f5f5;
+}
+#footer-global {
+    border-top: 1px solid #ebebeb;
+    font-size: 11.5px;
+    line-height: 1.8;
+    list-style: none;
+}
+#footer-global ul {
+    margin: 0;
+}
+#footer-global li {
+    display: inline;
+    font-weight: bold;
+}
+#footer-global li+li:before {
+    content: '¬?';
+    padding: 0 3px;
+}
+* html #footer-global li {
+    margin: 0 13px 0 0;
+}
+* [dir='rtl'] #footer-global li {
+    margin: 0 0 0 13px;
+}
+*+html #footer-global li {
+    margin: 0 13px 0 0;
+}
+*+[dir='rtl'] #footer-global li {
+    margin: 0 0 0 13px;
+}
+#footer-global li a {
+    font-weight: normal;
+}
+.locales {
+  margin: 10px 0 0 0px;
+}
+[dir='rtl'] .locales {
+    background-position: right center;
+    float: left;
+    padding: 0 24px 0 0;
+}
+.locales form {
+    margin: 0;	
+}
+.locales select, .sites select {
+  line-height: 3.08;
+  margin: 0px 0;
+  border: solid 1px #EBEBEB;
+  -webkit-appearance: none;
+  background: white url('../images/arrows-up-down.png') right center no-repeat;
+  height: 30px;
+  color: #222;
+  line-height: normal;
+  padding: 5px;
+  width: 230px;
+}
+}
+
+/* =============================================================================
+   Print Only
+   ========================================================================== */
+@media print {
+a {
+    color: inherit;
+}
+.nav-x, .nav-y {
+    display: none;
+}
+.str { color: #060; }
+.kwd { color: #006; font-weight: bold; }
+.com { color: #600; font-style: italic; }
+.typ { color: #404; font-weight: bold; }
+.lit { color: #044; }
+.pun { color: #440; }
+.pln { color: #000; }
+.tag { color: #006; font-weight: bold; }
+.atn { color: #404; }
+.atv { color: #060; }
+}
+
+/* =============================================================================
+   Columns
+   ========================================================================== */
+
+@media screen, projection, print {
+.full {
+	padding: 2.5em 0;
+	border-top: solid 1px #ddd;
+	border-bottom: solid 1px #ddd;
+	background: #f7f7f7;	
+}
+.wrap {
+	margin: 0 auto;
+	width: 940px;
+	clear: both;
+}
+.cols {
+    height: 1%;
+    margin: 0 -1.533742331288343558282%;
+    width: 103.06748466257669%}
+*+html .cols {
+    margin-bottom: 20px;
+}
+.cols:after {
+    clear: both;
+    content: ' ';
+    display: block;
+    height: 0;
+    visibility: hidden;
+}
+.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12,
+.col-13, .col-14, .col-15, .col-16 {
+    display: inline;
+	float: left;
+	margin-left: 10px;
+	margin-right: 10px;
+}
+/*
+* html .col-1, * html .col-2, * html .col-3, * html .col-4, * html .col-5, * html .col-6, * html
+.col-7, * html .col-8, * html .col-9, * html .col-10, * html .col-11, * html .col-12  {
+    margin: 0;
+    padding: 0 1.4% 20px;
+}
+[dir='rtl'] .col-1, [dir='rtl'] .col-2, [dir='rtl'] .col-3, [dir='rtl'] .col-4, [dir='rtl'] .col-5,
+[dir='rtl'] .col-6, [dir='rtl'] .col-7, [dir='rtl'] .col-8, [dir='rtl'] .col-9, [dir='rtl'] .col-10,
+[dir='rtl'] .col-11, [dir='rtl'] .col-12 {
+    float: right;
+}
+*/
+.col-1 { width: 40px }
+.col-2 { width: 100px }
+.col-3 { width: 160px }
+.col-4 { width: 220px }
+.col-5 { width: 280px }
+.col-6 { width: 340px }
+.col-7 { width: 400px }
+.col-8 { width: 460px }
+.col-9 { width: 520px }
+.col-10 { width: 580px }
+.col-11 { width: 640px }
+.col-12 { width: 700px }
+.col-13 { width: 760px }
+.col-14 { width: 820px }
+.col-15 { width: 880px }
+.col-16 { width: 940px }
+}
+
+.col-right {
+  margin-right:0px;
+}
+
+@media screen and (max-width:772px) {
+.col-5, .col-6, .col-7 {
+    clear: both;
+    width: 97.0238096%}
+}
+
+/* =============================================================================
+   Layout
+   ========================================================================== */
+@media screen, projection, print {
+
+/* --------------------------------------------------------------------------
+Header, Login, Nav-X, Search
+*/
+#header {
+	padding: 2.2em 0 0.2em 0;
+}
+#header:before, #header:after {
+	content: "";
+	display: table;
+	clear: both
+}
+.logo, .nav-x {
+    float: left;
+}
+.nav-x {
+    margin-top: -2px;
+	list-style-type: none;
+}
+.nav-x a {
+    color: #333;
+    font-size: 16px;
+}
+.design a.selected {
+    color: #33b5e5;
+}
+.develop a.selected {
+    color: #F80;
+}
+.distribute a.selected {
+    color: #9C0;
+}
+
+
+
+.nav-x li {
+    display: inline;
+    margin-right: 45px;
+}
+.search {
+	float: right;
+	position: relative;
+	width: 220px
+}
+.search .bottom, .search .left, .search .right {
+	position: absolute;
+	background-color: #a3a3a3;
+}
+.search .bottom {
+	width: 220px;
+	height: 1px;
+	top: 24px;
+	left: 0
+}
+.search .left, .search .right {	
+	height: 5px;
+	width: 1px
+}
+.search .left {	top: 19px; left: 0 }
+.search .right { top: 19px; right: 0 }
+.search form {
+	float: left;
+	margin-top: 2px;
+	width: inherit;
+}
+.search .close,
+#player-frame .close {
+  position: absolute;
+  right: 8px;
+  bottom: 4px;
+  width: 16px;
+  height: 16px;
+  margin: 0;
+  text-indent: -1000em;
+  background: url(../images/close.png) no-repeat 0 0;
+  z-index:9999;
+}
+.search .close:hover, .search .close:focus,
+#player-frame .close:hover, #player-frame .close:focus {
+  background-position: -16px 0;
+  cursor:pointer;
+}
+#player-frame .close {
+  top: 6px;
+}
+.search form input {
+	color: #999;
+	font-size: 1em;
+	width: inherit;
+	border: none;
+	margin: 0;
+	padding:0 0 0 6px;
+	z-index: 1500;
+	background-color: transparent
+}
+.search:hover .bottom, .search:hover .left, .search:hover .right {
+	background-color: #33b5e5;
+}
+.search:hover .icon {
+	background-position: -8px 0
+}
+.search form input:focus {
+	color: #222;
+	font-weight: bold;
+	outline:0;
+}
+/* Search Dropdown */
+.search-dropdown {
+	padding: 15px;
+	width: 192px;
+	border: solid 1px #c5c5c5;
+	background: #fff;
+	position: absolute;
+	top: 35px;
+	left: 0;
+	-moz-box-shadow: 0 0 10px rgba(0,0,0,0.2);
+	-webkit-box-shadow: 0 0 10px rgba(0,0,0,0.2);
+	box-shadow: 0  0 10px rgba(0,0,0,0.2)
+}
+.search-dropdown ul, .search-dropdown ul li {
+	list-style-type: none;
+	margin: 0;
+	padding: 0
+}
+.search-dropdown ul li {
+	clear: both	
+}
+.search-dropdown img {
+	float: left;
+	margin: 0 10px 10px 0
+}
+.search-dropdown h6 {
+	color: #222;
+	margin: 0;
+	line-height: normal
+}
+.search-dropdown .desc {
+	color: #999;
+	font-size: 11.5px;
+	line-height: normal;
+	margin: 0;
+}
+.search-dropdown li a:hover h6, .search-dropdown li a:hover .desc {
+	color: #33b5e5
+}
+/* --------------------------------------------------------------------------
+Buttons
+*/
+.button, a.button, .button-secondary, a.button-secondary {
+	border-image: initial;
+    -webkit-border-radius: 2px;
+    -moz-border-radius: 2px;
+    border-radius: 2px;
+    cursor: pointer;
+}
+.button, a.button {
+    background-color: #09c;
+    background-image: -webkit-gradient(linear, left top, left bottom, from(#2faddb), to(#09c));
+    background-image: -webkit-linear-gradient(top, #2faddb, #09c);
+    background-image: -moz-linear-gradient(top, #2faddb, #09c);
+    background-image: -ms-linear-gradient(top, #2faddb, #09c);
+    background-image: -o-linear-gradient(top, #2faddb, #09c);
+    background-image: linear-gradient(top, #2faddb, #09c);
+    filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#2faddb', EndColorStr='#0099cc',GradientType=0);
+    border: 1px solid #3990ab;
+    color: #fff;
+}
+.button-secondary, a.button-secondary {
+    background-color: #f3f3f3;
+    border: 1px solid #dcdcdc;
+    color: #444;
+}
+a.button, a.button:visited, a.button-secondary, a.button-secondary:visited {
+    height: 28px;
+    line-height: 28px;
+    margin-right: 16px;
+	font-weight: 400;
+    min-width: 54px;
+    outline: 0;
+    padding: 8px 15px;
+    text-align: center;
+}
+.button, .button-secondary {
+    height: 34px;
+    line-height: 34px;
+    margin-right: 16px;
+	font-weight: 400;
+    min-width: 54px;
+    outline: 0;
+    padding: 0 15px;
+    text-align: center;
+}
+.button:hover, a.button:hover {
+    border-color: #09c;
+    background-color: #4cadcb;
+    background-image: -webkit-gradient(linear, left top, left bottom, from(#5dbcd9), to(#4cadcb));
+    background-image: -webkit-linear-gradient(top, #5dbcd9, #4cadcb);
+    background-image: -moz-linear-gradient(top, #5dbcd9, #4cadcb);
+    background-image: -ms-linear-gradient(top, #5dbcd9, #4cadcb);
+    background-image: -o-linear-gradient(top, #5dbcd9, #4cadcb);
+    background-image: linear-gradient(top, #5dbcd9, #4cadcb);
+    filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#5dbcd9',
+EndColorStr='#4cadcb',GradientType=0);
+    color: #fff !important;
+}
+.button:active, a.button:active {
+    background-color: #1e799a;
+    background-image: none;
+    border-color: #30b7e6;
+}
+.button-secondary:hover, a.button-secondary:hover {
+    border-color: #dbdbdb;
+    background-color: #f3f3f3;
+    background-image: -webkit-gradient(linear, left top, left bottom, from(#f9f9f9), to(#ececec));
+    background-image: -webkit-linear-gradient(top, #f9f9f9, #ececec);
+    background-image: -moz-linear-gradient(top, #f9f9f9, #ececec);
+    background-image: -ms-linear-gradient(top, #f9f9f9, #ececec);
+    background-image: -o-linear-gradient(top, #f9f9f9, #ececec);
+    background-image: linear-gradient(top, #f9f9f9, #ececec);
+    filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#f9f9f9',
+EndColorStr='#ececec');
+    color: #33B5E5 !important;
+}
+.button-secondary:active, a.button-secondary:active {
+    border-color: #dadada;
+	background: #ebebeb; /* Old browsers */
+	/* IE9 SVG, needs conditional override of 'filter' to 'none' */
+	background:
+url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/
+Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0Jv
+eD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+
+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIg
+eDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ViZWJl
+YiIgc3RvcC1vcGFjaXR5PSIxIi8+
+CiAgICA8c3RvcCBvZmZzZXQ9IjEwJSIgc3RvcC1jb2xvcj0iI2Y5ZjlmOSIgc3RvcC1vcGFjaXR5PSIxIi8+
+CiAgICA8c3RvcCBvZmZzZXQ9IjUwJSIgc3RvcC1jb2xvcj0iI2ZhZmFmYSIgc3RvcC1vcGFjaXR5PSIxIi8+
+CiAgICA8c3RvcCBvZmZzZXQ9IjkwJSIgc3RvcC1jb2xvcj0iI2Y5ZjlmOSIgc3RvcC1vcGFjaXR5PSIxIi8+
+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmNmY2ZjYiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFy
+R3JhZGllbnQ+
+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIg
+Lz4KPC9zdmc+);
+	background: -moz-linear-gradient(top,  #ebebeb 0%, #f9f9f9 5%, #fafafa 50%, #f9f9f9 90%,
+#ffffff 100%); /* FF3.6+ */
+	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ebebeb),
+color-stop(5%,#f9f9f9), color-stop(50%,#fafafa), color-stop(90%,#f9f9f9), color-stop(100%,#ffffff));
+/* Chrome,Safari4+ */
+	background: -webkit-linear-gradient(top,  #ebebeb 0%,#f9f9f9 5%,#fafafa 50%,#f9f9f9
+90%,#ffffff 100%); /* Chrome10+,Safari5.1+ */
+	background: -o-linear-gradient(top,  #ebebeb 0%,#f9f9f9 5%,#fafafa 50%,#f9f9f9 90%,#ffffff
+100%); /* Opera 11.10+ */
+	background: -ms-linear-gradient(top,  #ebebeb 0%,#f9f9f9 5%,#fafafa 50%,#f9f9f9 90%,#ffffff
+100%); /* IE10+ */
+	background: linear-gradient(top,  #ebebeb 0%,#f9f9f9 5%,#fafafa 50%,#f9f9f9 90%,#ffffff
+100%); /* W3C */
+	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ebebeb',
+endColorstr='#ffffff',GradientType=0 ); /* IE6-8 */
+	-webkit-box-shadow: inset 0px 0px 5px 2px rgba(0, 0, 0, .05);
+	-moz-box-shadow: inset 0px 0px 5px 2px rgba(0, 0, 0, .05);
+	box-shadow: inset 0px 0px 5px 2px rgba(0, 0, 0, .05); 
+	color: #258AAF !important;
+}
+.button.big {
+  font-size:20px;
+  display:inline-block;
+}
+
+.button.disabled,
+.button.disabled:hover,
+.button.disabled:active {
+  background:#ebebeb;
+  color:#999;
+  border-color:#999;
+  cursor:default;
+}
+
+.training-nav-top a.button-secondary,
+.training-nav-bottom a.button-secondary {
+  display:block;
+  float:left;
+  margin:0;
+  width:130px;
+  text-transform:uppercase;
+  font-weight:bold;
+  
+    background-color: #f3f3f3;
+    background-image: -webkit-gradient(linear, left top, left bottom, from(#f9f9f9), to(#ececec));
+    background-image: -webkit-linear-gradient(top, #f9f9f9, #ececec);
+    background-image: -moz-linear-gradient(top, #f9f9f9, #ececec);
+    background-image: -ms-linear-gradient(top, #f9f9f9, #ececec);
+    background-image: -o-linear-gradient(top, #f9f9f9, #ececec);
+    background-image: linear-gradient(top, #f9f9f9, #ececec);
+    filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#f9f9f9',
+EndColorStr='#ececec');
+    color: #33B5E5;
+}
+
+.training-nav-top a.button-secondary:hover,
+.training-nav-bottom a.button-secondary:hover {
+    background-color: #09c;
+    background-image: -webkit-gradient(linear, left top, left bottom, from(#2faddb), to(#09c));
+    background-image: -webkit-linear-gradient(top, #2faddb, #09c);
+    background-image: -moz-linear-gradient(top, #2faddb, #09c);
+    background-image: -ms-linear-gradient(top, #2faddb, #09c);
+    background-image: -o-linear-gradient(top, #2faddb, #09c);
+    background-image: linear-gradient(top, #2faddb, #09c);
+    filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#2faddb', EndColorStr='#09c');
+    border: 1px solid #3990ab;
+    color: #fff !important;
+}
+
+.training-nav-top a.button-secondary.last,
+.training-nav-bottom a.button-secondary.last {
+  border-left:0;
+}
+
+.training-nav-top a.button-secondary.double-size,
+.training-nav-bottom a.button-secondary.double-size {
+  width:291px;
+}
+
+.training-nav-top,
+.training-nav-bottom {
+  float:right;
+  margin:0 0 0 20px;
+}
+
+.training-nav-bottom {
+  padding:0 0 20px;
+}
+
+#tb-wrapper,
+#qv-wrapper {
+  float:right;
+  clear:right;
+  margin:-27px 0 0 20px; /* negative top-margin to counter the content-header bottom margin */
+  padding:0 0 20px;
+}
+
+#tb,
+#qv {
+  font-size:13px;
+  line-height:18px;
+  width:238px;
+  border:1px solid #ccc;
+  float:right;
+}
+
+#tb {
+  width:278px;
+}
+
+#tb h2,
+#qv h2 {
+  margin:10px 15px;
+  padding:0;
+  text-transform:uppercase;
+  border-bottom:1px solid gainsboro;
+}
+
+#tb *,
+#qv * {
+  font-size:inherit;
+}
+
+#tb .download-box {
+  padding:0 0 0 15px;
+}
+
+#tb .download-box .filename {
+  font-size:11px;
+  margin:4px 4px 10px;
+  color:#666;
+}
+
+
+/* Dev guide quicknav */
+
+.sidebox-wrapper {
+  float:right;
+  clear:right;
+  margin:0 0 0 20px;
+  padding:0 0 20px;
+}
+
+.sidebox {
+  width:226px;
+  font-size:13px;
+  line-height:18px;
+  border-left:4px solid #99CC00;
+  float:right;
+  padding:0 0 0 10px;
+}
+
+.sidebox h2,
+.sidebox h3,
+.sidebox h4,
+.sidebox h5 {
+  font-weight:bold;
+  margin:0 0 10px;
+}
+
+.sidebox * {
+  font-size:inherit;
+}
+
+#tb ol,
+#tb ul,
+#qv ul {
+  margin:0 15px 10px 35px;
+}
+
+#qv ol {
+  list-style:none;
+  margin:0 15px 15px;
+  font-size:inherit;
+  line-height:inherit;
+}
+
+#tb ol ol,
+#tb ul ul,
+#qv ol ol,
+#qv ul ul,
+.sidebox ol ol,
+.sidebox ul ul {
+  margin-bottom:0;
+}
+
+#qv ol ol {
+  margin:3px 0 3px 15px;
+}
+
+.sidebox p,
+#qv p,
+#tb p {
+  margin: 0 0 10px;
+}
+
+
+/* --------------------------------------------------------------------------
+Form
+*/
+.article form {
+    margin: 0 0 20px;
+}
+.article form .form-required {
+    color: #dd4b39;
+}
+.article form fieldset {
+    margin: 0 0 20px;
+    padding: 0;
+}
+.article form legend {
+    display: block;
+    line-height: 1.5;
+    margin: 0;
+    padding: 0;
+}
+/*
+.article form ol, .article form ul {
+    margin: 0 0 0 1em;
+    padding: 0 0 0 1em;
+}
+[dir='rtl'] .article form ol, [dir='rtl'] .article form ul {
+    margin: 0 1em 0 0;
+    padding: 0 1em 0 0;
+}
+.article form ol ul, .article form ul ul, [dir='rtl'] .article form ol ul, [dir='rtl'] .article form
+ul ul {
+    list-style: none;
+    margin: 0;
+    padding: 0;
+}
+.article form li {
+    margin: 0 0 20px;
+}
+.article form li li {
+    margin: 0 0 5px;
+}
+*/
+.article form label {
+    display: block;
+    margin: 0 0 5px;
+    padding: 0;
+}
+.article form input[type='text'], .article form select, .article form textarea, .article form
+.checkbox-group, .article form .radio-group {
+    margin-bottom: 15px;
+}
+.checkbox-group input {
+	width: 13px;
+	height: 13px;
+	background: #fff;
+	border: solid 1px #c6c6c6;
+	float: left;
+}
+.article form .checkbox-group, .article form .radio-group {
+	display: block
+}
+.article form select {
+    border: solid 1px #ebebeb;
+    border-top-color: #ddd;
+    -webkit-appearance: none;
+    background: #f3f3f3 url(../images/arrows-up-down.png) right center no-repeat;
+    height: 30px;
+    color: #222;
+    line-height: normal;
+    padding: 5px;
+    width: 130px;
+}
+    
+.article form .browse .browse-msg {
+	font-size: 11.5px;	
+}
+.article form .browse .button-secondary {
+	height: auto;
+	line-height: 25px;
+	font-size: 11px;
+	padding: 0 8px;
+	margin: 0 10px 15px 0;
+}
+.article form input[type='text'], .article form textarea {
+    border: 1px solid #ebebeb;
+    border-top-color: #dcdcdc;
+    color: #222;
+    line-height: normal;
+    padding: 6px 10px;
+    width: 300px;	
+}
+.article form textarea {
+    height: 150px;
+}
+.article form input[type='text']:focus, .article form textarea:focus {
+    border-color: #33B5E5;
+    -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .2);
+    -o-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .2);
+    -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .2);
+    box-shadow: inset 0 1px 2px rgba(0, 0, 0, .2);
+    outline: 0;
+}
+.article form input[disabled], .article form textarea[disabled], .article form label.form-disabled {
+    color: #999;
+}
+.article form input[type='text'][disabled], .article form textarea[disabled] {
+    background-color: #ebebeb;
+}
+form .form-error input[type='text'], form .form-error textarea {
+    border-color: #dd4b39;
+	margin-right: 20px;
+}
+.aside {
+    -moz-border-radius: 2px;
+    -webkit-border-radius: 2px;
+    border-radius: 2px;
+    margin: 10px 0;
+    padding: 20px;
+	color: #666;
+    position: relative;
+	background: #f9f9f9;
+}
+/*
+.aside, .notification, .promo {
+    -moz-border-radius: 2px;
+    -webkit-border-radius: 2px;
+    border-radius: 2px;
+    margin: 10px 0;
+    padding: 10px;
+    position: relative;
+}
+.aside>:first-child, .notification>:first-child, .promo>:first-child {
+    margin-top: 0;
+}
+.aside>:last-child, .notification>:last-child, .promo>:last-child {
+    margin-bottom: 0;
+}
+.aside {
+    background: #f9f9f9;
+}
+.notification {
+    background: #fffbe4;
+    border-color: #f8f6e6;
+}
+.promo {
+    background: #f6f9ff;
+    border-color: #eff2f9;
+}
+*/
+/* --------------------------------------------------------------------------
+Code Style
+*/
+pre {
+	margin: 1em 0;
+	padding: 1em;
+	overflow: auto;
+	border: solid 1px #ddd;
+	background: #f7f7f7;	
+}
+.str { color: #080; }
+.kwd { color: #008; }
+.com { color: #800; }
+.typ { color: #606; }
+.lit { color: #066; }
+.pun { color: #660; }
+.pln { color: #000; }
+.tag { color: #008; }
+.atn { color: #828; }
+.atv { color: #080; }
+.dec { color: #606; }
+
+/* --------------------------------------------------------------------------
+Three-Pane
+*/
+/* Package Nav & Classes Nav */
+.three-pane {
+	position: relative;
+	border-top: solid 1px #ebebeb;
+}
+#packages-nav .js-pane,
+#classes-nav .js-pane {
+  overflow:visible;
+}
+#packages-nav {
+        height:270px;
+	max-height: inherit;
+	overflow: hidden;
+	position: relative;	
+}
+#classes-nav {
+	overflow: hidden;
+	position: relative;	
+}
+#packages-nav ul, #classes-nav ul {
+	list-style-type: none;
+	margin: 10px 0 20px 0;
+	padding: 0;	
+}
+#classes-nav li {
+	font-weight: bold;
+	margin: 5px 0;
+}
+#packages-nav li,
+#classes-nav li li {
+	margin: 0;
+}
+#packages-nav li a, #packages-nav li a:active, #packages-nav li a:visited,
+#classes-nav li a, #classes-nav li a:active, #classes-nav li a:visited {
+	padding: 0 0 0 4px;
+}
+#packages-nav li a, #packages-nav li a:active, #packages-nav li a:visited,
+#classes-nav li li a, #classes-nav li li a:active, #classes-nav li li a:visited,
+#nav-tree li a, #nav-tree li a:active, #nav-tree li a:visited {
+	color: #222;
+	font-weight: normal;	
+}
+#packages-nav li a, #packages-nav li a:active, #packages-nav li a:visited,
+#classes-nav li li a, #classes-nav li li a:active, #classes-nav li li a:visited {
+	display: block;
+}
+#packages-nav li.selected a, #packages-nav li.selected a:active, #packages-nav li.selected
+a:visited,
+#classes-nav li li.selected a, #classes-nav li li.selected a:active, #classes-nav li li.selected
+a:visited,
+#nav-tree li div.selected {
+    font-weight: 500;
+    color: #0099cc;
+    background-color:#fff; }
+  #packages-nav li.selected ul li a,
+  #classes-nav li.selected ul li a {
+  /* don't highlight child items */
+    color: #555555; }
+#nav-tree li div.selected a {
+    font-weight: 500;
+    color: #0099cc;
+}
+#nav-swap {
+  height:30px;
+  border-top:1px solid #ccc;
+}
+#nav-swap a {
+  display:inline-block;
+  height:100%;
+  color: #222;
+  font-size: 12px;
+  padding: 5px 0 5px 5px;
+}
+
+#nav-swap .fullscreen {
+  float: right;
+  width: 24px;
+  height: 24px;
+  text-indent: -1000em;
+  padding:0;
+  margin:3px 5px 0;
+  background: url(../images/fullscreen.png) no-repeat -24px 0;
+}
+#nav-swap .fullscreen.disabled {
+  background-position: 0 0;
+}
+#nav-swap .fullscreen:hover, 
+#nav-swap .fullscreen:focus {
+  cursor:pointer;
+}
+
+
+/* nav tree */
+#side-nav, #devdoc-nav, #swapper,
+#nav-tree, #tree-list {
+  overflow:hidden;
+  margin-left:0;
+}
+
+#nav-tree ul {
+  list-style:none;
+  padding:0;
+  margin:10px 0;
+}
+
+#nav-tree ul li div {
+  padding:0 0 0 4px;
+}
+
+#side-nav #nav-tree ul li a,
+#side-nav #nav-tree ul li span.no-children {
+  padding: 0;
+  margin: 0;
+}
+
+#nav-tree .plus {
+  margin: 0 3px 0 0;
+}
+
+#nav-tree ul ul {
+  list-style: none;
+  margin: 0;
+  padding: 0 0 0 0;
+}
+
+#nav-tree ul li {
+  margin: 0;
+  padding: 0 0 0 0;
+  white-space: nowrap;
+}
+
+#nav-tree .children_ul {
+  padding:0;
+  margin:0;
+}
+#nav-tree .children_ul li div {
+  padding:0 0 0 10px;
+}
+#nav-tree .children_ul .children_ul li div {
+  padding:0 0 0 20px;
+}
+
+#nav-tree a.nolink {
+  color: #222;
+  text-decoration: none;
+}
+
+#nav-tree span.label {
+  width: 100%;
+}
+
+#nav-tree {
+  overflow-x: auto;
+  overflow-y: scroll;
+  outline:0;
+}
+
+
+/* Content */
+#doc-col {
+  margin-right:0;
+}
+#doc-content-container {
+	margin-left: 291px	
+}
+#doc-header, #doc-content {
+	padding: 1em 2em;
+}
+#doc-header {
+	background: #f7f7f7;	
+}
+#doc-header h1 {
+	line-height: 0;
+	margin-bottom: 15px;
+}
+#api-info-block {
+	float: right;
+	font-weight: bold;
+}
+#api-info-block a, #api-info-block a:active, #api-info-block a:visited {
+	color: #222;
+}
+#api-info-block a:hover, #api-info-block a:focus {
+	color: #33B5E5;
+}
+#api-nav-header {
+  height:19px; /* plus 16px padding = 35; same as #nav li */
+  font-size:14px;
+  padding: 8px 0;
+  margin: 0;
+  border-bottom: 1px solid #CCC;
+  background:#e9e9e9;
+  background: rgba(0, 0, 0, 0.05); /* matches #nav li.expanded */
+
+}
+#api-nav-title {
+  padding:0 5px;
+  white-space:nowrap;
+}
+
+#api-level-toggle {
+  float:right;
+  padding:0 5px;
+}
+
+#api-level-toggle label {
+  margin:0;
+  vertical-align:top;
+  line-height: 19px;
+  font-size:13px;
+  height: 19px;
+}
+
+#api-level-toggle .select-wrapper {
+  width: 35px;
+  display: inline-block;
+  overflow: hidden;
+}
+#api-level-toggle select {
+  border: 0;
+  appearance:none;
+  -moz-appearance:none;
+  -webkit-appearance: none;
+  background: transparent url(../images/arrows-up-down.png) 23px 5px no-repeat;
+  color: #222;
+  height: 19px;
+  line-height: 19px;
+  padding: 0;
+  margin:1px 0 0 0;
+  width:150%;
+  font-size:13px;
+  vertical-align:top;
+  outline:0;
+}
+
+
+/* Toggle for revision notes and stuff */
+div.toggle-content.closed .toggle-content-toggleme {
+  display:none;
+}
+
+#jd-content img.toggle-content-img {
+  margin:0 5px 5px 0;
+}
+div.toggle-content > p {
+  padding:0 0 5px;
+}
+
+
+/* API LEVEL FILTERED MEMBERS */
+
+.absent,
+.absent a:link,
+.absent a:visited,
+.absent a:hover,
+.absent * {
+  color:#bbb !important;
+  cursor:default !important;
+  text-decoration:none !important;
+}
+#devdoc-nav li.absent.selected,
+#devdoc-nav li.absent.selected *,
+#devdoc-nav div.label.absent.selected,
+#devdoc-nav div.label.absent.selected * {
+  background-color:#eaeaea !important;
+}
+.absent h4.jd-details-title,
+.absent h4.jd-details-title * {
+  background-color:#f6f6f6 !important;
+}
+.absent img {
+  opacity: .3;
+  filter: alpha(opacity=30);
+  -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
+}
+
+
+
+
+
+
+
+
+
+/* JQUERY RESIZABLE STYLES */
+.ui-resizable { position: relative; }
+.ui-resizable-handle { position: absolute; display: none; font-size: 0.1px; z-index:1; }
+.ui-resizable .ui-resizable-handle { display: block; border-bottom: 1px solid #e4e4e4; }
+/*body .ui-resizable-disabled .ui-resizable-handle { display: none; }
+body .ui-resizable-autohide .ui-resizable-handle { display: none; }*/
+.ui-resizable-s { cursor: s-resize; height: 10px; width: 100% !important; bottom: -11px; left: 0;
+border-bottom: solid 1px #ededed;
+  background: #f7f7f7 url("../images/resizable-s2.png") no-repeat scroll center center; }
+/*
+.ui-resizable-e { 
+cursor: e-resize; width: 10px; right: 0; top: 0; height: 100%; border-right: solid
+1px #ededed;background: #f7f7f7 url("../images/resizable-e2.png") no-repeat scroll center center; }
+*/
+
+/* --------------------------------------------------------------------------
+Lightbox
+*/
+.lightbox {	
+	width: 769px;
+	padding: 1.5em;
+	margin: 0 auto;
+	border: solid 1px #dcdcdc;
+	background: #fff;
+	-moz-box-shadow: 1px 1px 5px rgba(0,0,0,0.1);
+	-webkit-box-shadow: 1px 1px 5px rgba(0,0,0,0.1);
+	box-shadow: 1px 1px 5px rgba(0,0,0,0.1)
+}
+.lightbox .header {
+	float: left;
+	width: 720px;
+	margin: -10px 20px 10px 0;	
+}
+.lightbox .close {
+	float: right;
+	width: 10px;
+	height: 10px;
+	margin: -10px -10px 10px 0;
+	text-indent: -1000em;
+	background: url(../images/close.png) no-repeat 0 0;
+}
+.lightbox .close:hover, .lightbox .close:focus {
+	background-position: -10px 0;
+}
+
+/* --------------------------------------------------------------------------
+Misc
+*/
+
+
+.clearfix:before, .clearfix:after {
+	content: "";
+	display: table
+}
+.clearfix:after {
+	clear: both
+}
+.clearfix {
+	*zoom: 1
+}
+table.blank th, table.blank td {
+    border: 0;
+	background: none
+}
+.caption {
+	margin: 0.5em 0 2em 0;
+	color: #000;
+	font-size: 11.5px;	
+}
+
+.nolist {
+  list-style:none;
+  padding:0;
+  margin:0 0 1em 1em;
+}
+
+.nolist li {
+  padding:0 0 2px;
+  margin:0;
+}
+
+pre.classic {
+  background-color:transparent;
+  border:none;
+  padding:0;
+}
+
+p.img-caption {
+  margin: -10px 0 20px;
+  font-size:13px;
+  color:#666;
+}
+
+div.figure {
+  float:right;
+  clear:right;
+  margin:10px 0 0 0;
+  padding:0 0 0 20px;
+  /* width must be defined w/ an inline style matching the image width */
+}
+
+p.table-caption {
+  margin: 0 0 4px 0; /* matches default table left-margin */
+  font-size:13px;
+  color:#666;
+}
+
+p.note, div.note, 
+p.caution, div.caution, 
+p.warning, div.warning {
+  padding: 0 0 0 10px;
+  border-left: 4px solid;
+}
+
+p.note {
+  border-color: #258AAF;
+}
+
+p.caution {
+  border-color: #FF8800;
+}
+
+p.warning {
+  border-color: #ff4443;
+}
+
+div.note.design {
+  border-left: 4px solid #33B5E5;
+}
+
+div.note.develop {
+  border-left: 4px solid #F80;
+}
+
+div.note.distribute {
+  border-left: 4px solid #9C0;
+}
+
+.note p, .caution p, .warning p {
+  margin:0 0 5px;
+}
+
+.note p:last-child, .caution p:last-child, .warning p:last-child {
+  margin-bottom:0;
+}
+
+blockquote {
+  display:block;
+  float:right;
+  width:280px;
+  font-size:20px;
+  font-style:italic;
+  line-height:24px;
+  color:#33B5E5;
+  margin:0 0 20px 30px;
+}
+
+div.design-announce p {
+  margin:0 0 10px;
+}
+
+#devdoc-nav a.totop {
+  display:block;
+  top:0;
+  width:inherit;
+  background: transparent url(../images/styles/gototop.png) no-repeat scroll 50% 50%;
+  text-indent:-9999em;
+}
+#devdoc-nav a.totop {
+  position:fixed;
+  display:none;
+}
+#devdoc-nav a.totop:hover {
+  background-color:#33B5E5;
+}
+
+.content-footer a.totop {
+  text-transform:uppercase;
+  line-height:30px;
+}
+
+/* -----------------------------------------------
+Dialog box for popup messages 
+*/
+
+div.dialog {
+  height:0;
+  margin:0 auto;
+}
+
+div.dialog>div {
+  z-index:99;
+  position:fixed;
+  margin:70px 0;
+  width: 391px;
+  height: 200px;
+  background: #F7F7F7;
+-moz-box-shadow: 0 0 15px rgba(0,0,0,0.5);
+-webkit-box-shadow: 0 0 15px rgba(0,0,0,0.5);
+box-shadow: 0 0 15px rgba(0,0,0,0.5);
+}
+/* IE6 can't position fixed */
+* html div.dialog div { position:absolute; }
+
+
+div#deprecatedSticker {
+  display:none;
+  z-index:99;
+  position:fixed;
+  right:15px;
+  top:114px;
+  margin:0;
+  padding:1em;
+  background:#FFF;
+  border:1px solid #dddd00;
+  box-shadow:-5px 5px 10px #ccc;
+  -moz-box-shadow:-5px 5px 10px #ccc;
+  -webkit-box-shadow:-5px 5px 10px #ccc;
+}
+
+div#naMessage {
+  display:none;
+  width:555px;
+  height:0;
+  margin:0 auto;
+}
+
+div#naMessage div {
+  z-index:99;
+  width:450px;
+  position:fixed;
+  margin:50px 0;
+  padding:4em 4em 3em;
+  background:#FFF;
+  border:1px solid #999;
+  box-shadow:-10px 10px 40px #888;
+  -moz-box-shadow:-10px 10px 40px #888;
+  -webkit-box-shadow:-10px 10px 40px #888;
+}
+/* IE6 can't position fixed */
+* html div#naMessage div { position:absolute; }
+
+div#naMessage strong {
+  font-size:1.1em;
+}
+
+
+/* --------------------------------------------------------------------------
+Slideshow Controls & Next/Prev 
+*/
+.slideshow-next, .slideshow-prev {	
+	width: 20px;
+	height: 36px;
+	text-indent: -1000em;
+}
+.slideshow-container {
+	margin: 2em 0;
+}
+.slideshow-container:before, .slideshow-container:after {
+	content: "";
+	display: table;
+	clear: both;
+}
+a.slideshow-next, a.slideshow-next:visited {
+
+	float: right;
+
+	background: url(../images/arrow-right.png) no-repeat 0 0
+
+}
+
+a.slideshow-prev, a.slideshow-prev:visited {
+
+	float: left;	
+
+	background: url(../images/arrow-left.png) no-repeat 0 0
+
+}
+
+.slideshow-next:hover, .slideshow-prev:hover, .slideshow-next:focus, .slideshow-prev:focus {
+
+	background-position: 0 -36px	
+
+}
+
+.slideshow-next:active, .slideshow-prev:active {
+
+	background-position: 0 -72px	
+
+}
+.slideshow-nav {
+	width: 74px;
+	margin: 0 auto;		
+}
+.slideshow-nav a, .slideshow-nav a:visited {
+	display: inline-block;
+	width: 12px;
+	height: 12px;
+	margin: 0 2px 20px 2px;
+	background: #ccc;
+	-webkit-border-radius: 50%;
+	-moz-border-radius: 50%;
+	border-radius: 50%;
+}
+.slideshow-nav a:hover, .slideshow-nav a:focus {
+
+	background: #33B5E5
+}
+
+.slideshow-nav a:active {
+
+	background: #1e799a;
+	background: #ebebeb;	
+	-webkit-box-shadow: inset 0px 0px 5px 2px rgba(0, 0, 0, .05);
+	-moz-box-shadow: inset 0px 0px 5px 2px rgba(0, 0, 0, .05);
+	box-shadow: inset 0px 0px 5px 2px rgba(0, 0, 0, .05);
+}
+.slideshow-nav a.active, .slideshow-nav a.active:active, .slideshow-nav a.active:visited {
+	background: #33B5E5
+}
+/* --------------------------------------------------------------------------
+Tabs
+*/
+ul.tabs {
+	padding: 0;
+	margin: 2em 0 0 0;	
+}
+ul.tabs:before, ul.tabs:after {
+	content: "";
+	display: table;
+	clear: both;
+}
+ul.tabs li {
+	list-style-type: none;
+	float: left;	
+}
+ul.tabs li a, ul.tabs li a:active, ul.tabs li a:visited {
+	display: block;
+	height: 36px;
+	line-height: 36px;
+	padding: 0 15px;
+	margin-right: 2px;
+	color: #222;
+	-moz-border-radius-topleft: 2px;
+	-moz-border-radius-topright: 2px;
+	-moz-border-radius-bottomright: px;
+	-moz-border-radius-bottomleft: px;
+	-webkit-border-radius: 2px 2px px px;
+	border-radius: 2px 2px px px; 
+	border-top: solid 1px #ebebeb;
+	border-left: solid 1px #ebebeb;
+	border-right: solid 1px #ebebeb;
+	background-color: #fff;
+    background-image: -webkit-gradient(linear, left top, left bottom, from(#ffffff), to(#fafafa));
+    background-image: -webkit-linear-gradient(top, #ffffff, #fafafa);
+    background-image: -moz-linear-gradient(top, #ffffff, #fafafa);
+    background-image: -ms-linear-gradient(top, #ffffff, #fafafa);
+    background-image: -o-linear-gradient(top, #ffffff, #fafafa);
+    background-image: linear-gradient(top, #ffffff, #fafafa);
+    filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffffff',
+EndColorStr='#fafafa');
+}
+ul.tabs li a:hover {
+	color: #33B5E5;	
+}
+ul.tabs li a.selected {
+	height: 37px;
+	color: #33B5E5;
+	background-color: #f7f7f7;
+	background-image: none;
+	border-color: #ddd;
+}
+.tab-content {
+	padding: 1.2em;
+	margin: -1px 0 2em 0;
+	-webkit-border-radius: 2px;
+    -moz-border-radius: 2px;
+    border-radius: 2px;
+	border: solid 1px #ddd;
+	background: #f7f7f7;
+}
+/* --------------------------------------------------------------------------
+Feature Boxes
+*/
+.feature-box {
+  width: 291px;
+  height: 200px;
+  position: relative;
+  background: #F7F7F7;
+}
+.box-border .top, .box-border .bottom, .box-border .left, .box-border .right {
+	z-index: 100;
+	position: absolute;
+	background-color: #aaa;
+}
+.box-border .top, .box-border .bottom {
+	width: 291px;
+	height: 1px;
+}
+.dialog .box-border .top,
+.dialog .box-border .bottom { width:391px; }
+
+.box-border .left, .box-border .right {	
+	width: 1px;
+	height: 8px;		
+}
+.box-border .top { top: 0; left: 0 }
+.box-border .top .left { top: 1px; left: 0 }
+.box-border .top .right { top: 1px; right: 0 }
+.box-border .bottom .left { top: -8px; left: 0 }
+.box-border .bottom { top: 200px; left: 0 }
+.box-border .bottom .right { top: -8px; right: 0 }
+
+.feature-box h4,
+.dialog h4 {
+    margin: 15px 18px 10px;
+    padding:0;
+}
+
+.feature-box p,
+.dialog p {
+    margin: 10px 18px;
+    padding:0;
+}
+.feature-box .link,
+.dialog .link {
+    border-top: 1px solid #dedede;
+    bottom: 0;
+    position: absolute;
+    width: inherit;
+}
+.feature-box a, .feature-box h4,
+.dialog a, .dialog h4 {
+    -webkit-transition: color .4s ease;
+    -moz-transition: color .4s ease;
+    -o-transition: color .4s ease;
+    transition: color .4s ease;
+}
+.feature-box:hover {
+	cursor: pointer;	
+}
+.feature-box:hover .box-border .top, .feature-box:hover .box-border .bottom, .feature-box:hover
+.left, .feature-box:hover .right {	
+	background-color: #33B5E5;
+}
+.feature-box:hover h4, .feature-box:hover a {
+	color: #33B5E5;
+}
+/* --------------------------------------------------------------------------
+Page-Specific Styles
+*/
+.colors { 
+	position: relative;
+	float: left;
+	width: 92px;
+	margin: 40px 0 20px;
+}
+.colors div {
+	color: #fff;
+	font-size: 11.5px;
+	width: 82px;
+	height: 82px;
+	margin-top:-30px;
+	line-height: 82px;
+	text-align: center;
+	border: solid 5px #fff;
+	-webkit-border-radius: 50%;
+	-moz-border-radius: 50%;
+	border-radius: 50%;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/* ########### REFERENCE DOCS ################## */
+
+#packages-nav h2,
+#classes-nav h2 {
+  font-size:18px;
+  margin:0;
+  padding:0 0 0 4px;
+}
+
+#jd-header {
+  padding: 0 0 5px;
+  margin: 20px 0 10px;
+  font-size:13px;
+  border-bottom:solid 1px #ccc;
+}
+
+#jd-header h1 {
+  margin:0;
+  padding:0;
+}
+
+/* page-top-right container for reference pages (holds
+links to summary tables) */
+#api-info-block {
+  font-size:13px;
+  margin:20px 0 0;
+  padding:0 10px 6px;
+  font-weight:normal;
+  float:right;
+  text-align:right;
+  color:#999;
+  max-width:70%;
+}
+
+#api-info-block div.api-level {
+  font-weight:bold;
+  font-size:inherit;
+  float:none;
+  color:#222;
+  padding:0;
+  margin:0;
+}
+
+/* inheritance table */
+.jd-inheritance-table {
+  border-spacing:0;
+  margin:0;
+  padding:0;
+  font-size:13px;
+  background-color:transparent;
+}
+.jd-inheritance-table tr td {
+  border: none;
+  margin: 0;
+  padding: 0;
+  background-color:transparent;
+}
+.jd-inheritance-table .jd-inheritance-space {
+  font-weight:bold;
+  width:1em;
+}
+.jd-inheritance-table .jd-inheritance-interface-cell {
+  padding-left: 17px;
+}
+
+
+
+.jd-sumtable a {
+  text-decoration:none;
+}
+
+.jd-sumtable a:hover {
+  text-decoration:underline;
+}
+
+/* the link inside a sumtable for "Show All/Hide All" */
+.toggle-all {
+  display:block;
+  float:right;
+  font-weight:normal;
+  font-size:0.9em;
+}
+
+/* adjustments for in/direct subclasses tables */
+.jd-sumtable.jd-sumtable-subclasses {
+  margin: 1em 0 0 0;
+  max-width:968px;
+  background-color:transparent;
+  font-size:13px;
+}
+
+/* extra space between end of method name and open-paren */
+.sympad {
+  margin-right: 2px;
+}
+
+/* right alignment for the return type in sumtable */
+.jd-sumtable .jd-typecol {
+  text-align:right;
+}
+
+/* adjustments for the expando table-in-table */
+.jd-sumtable-expando {
+  margin:.5em 0;
+  padding:0;
+}
+
+/* a div that holds a short description */
+.jd-descrdiv {
+  padding:3px 1em 0 1em;
+  margin:0;
+  border:0;
+}
+
+#jd-content img.jd-expando-trigger-img {
+  padding:0 4px 4px 0;
+  margin:0;
+}
+
+.jd-sumtable-subclasses div#subclasses-direct,
+.jd-sumtable-subclasses div#subclasses-indirect {
+  margin:0 0 0 13px;
+}
+
+
+
+/********* MEMBER REF *************/
+
+
+.jd-details {
+/*  border:1px solid #669999;
+  padding:4px; */
+  margin:0 0 1em;
+}
+
+/* API reference: a container for the
+.tagdata blocks that make up the detailed
+description */
+.jd-details-descr {
+  padding:0;
+  margin:.5em .25em;
+}
+
+/* API reference: a block containing
+a detailed description, a params table,
+seealso list, etc */
+.jd-tagdata {
+  margin:.5em 1em;
+}
+
+.jd-tagdata p {
+  margin:0 0 1em 1em;
+}
+
+/* API reference: adjustments to
+the detailed description block */
+.jd-tagdescr {
+  margin:.25em 0 .75em 0;
+}
+
+.jd-tagdescr ol,
+.jd-tagdescr ul {
+  margin:0 2.5em;
+  padding:0;
+}
+
+.jd-tagdescr table,
+.jd-tagdescr img {
+  margin:.25em 1em;
+}
+
+.jd-tagdescr li {
+margin:0 0 .25em 0;
+padding:0;
+}
+
+/* API reference: heading marking
+the details section for constants,
+attrs, methods, etc. */
+h4.jd-details-title {
+  font-size:1.15em;
+  background-color: #E2E2E2;
+  margin:1.5em 0 .6em;
+  padding:3px 95px 3px 3px; /* room for api-level */
+}
+
+h4.jd-tagtitle {
+  margin:0;
+}
+
+h4 .normal {
+  font-weight:normal;
+}
+
+/* API reference: heading for "Parameters", "See Also", etc.,
+in details sections */
+h5.jd-tagtitle {
+  margin:0 0 .25em 0;
+  font-size:1em;
+}
+
+.jd-tagtable {
+  margin:0;
+  background-color:transparent;
+  width:auto;
+}
+
+.jd-tagtable td,
+.jd-tagtable th {
+  border:none;
+  background-color:#fff;
+  vertical-align:top;
+  font-weight:normal;
+  padding:2px 10px;
+}
+
+.jd-tagtable th {
+  font-style:italic;
+}
+
+/* Inline api level indicator for methods */
+div.api-level {
+  font-size:.8em;
+  font-weight:normal;
+  color:#999;
+  float:right;
+  padding:0 8px 0;
+  margin-top:-30px;
+}
+
+table.jd-tagtable td,
+table.jd-tagtable th {
+  background-color:transparent;
+}
+
+table.jd-tagtable th {
+  color:inherit;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/* SEARCH FILTER */
+
+#search_autocomplete {
+  font-weight:normal;
+}
+
+#search_filtered_wrapper {
+  width: 193px;
+  float: right;
+}
+#search_filtered_div {
+  position:absolute;
+  z-index:9999;
+  min-width:171px; /* +padding and border makes this match input width */
+  padding:5px;
+  border: solid 1px #C5C5C5;
+  background: white;
+  top: 35px;
+  -moz-box-shadow: 0 0 10px rgba(0,0,0,0.2);
+  -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
+  box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
+}
+
+ul#search_filtered {
+  min-width:100%;
+  margin:0;
+  list-style: none;
+  margin: 0;
+  padding: 0;
+}
+
+
+#search_filtered li{
+  line-height:1.5em;
+  margin: 0 0 2px;
+  padding: 0;
+}
+
+#search_filtered li a {
+  padding:0 5px;
+  color:#222 !important;
+}
+
+#search_filtered .jd-selected {
+  background-color: #33B5E5;
+  cursor:pointer;
+}
+#search_filtered .jd-selected,
+#search_filtered .jd-selected a {
+  color:#f7f7f7 !important;
+}
+
+.no-display {
+  display: none;
+}
+
+.jd-autocomplete {
+  padding-left: 6px;
+  padding-right: 6px;
+  padding-top: 1px;
+  padding-bottom: 1px;
+  font-size: 0.81em;
+  border: none;
+  margin: 0;
+  line-height: 1.05em;
+}
+
+.show-item {
+  display: table-row;
+}
+.hide-item {
+  display: hidden;
+}
+
+
+
+
+
+/* SEARCH RESULTS */
+
+/* disable twiddle and size selectors for left column */
+#leftSearchControl div {
+  padding:0;
+}
+
+#leftSearchControl .gsc-twiddle {
+  background-image : none;
+}
+
+#leftSearchControl td, #searchForm td {
+  border: 0px solid #000;
+  padding:0;
+}
+
+#leftSearchControl .gsc-resultsHeader .gsc-title {
+  padding-left : 0px;
+  font-weight : bold;
+  font-size : 13px;
+  color:#006699;
+  display : none;
+}
+
+#leftSearchControl .gsc-resultsHeader div.gsc-results-selector {
+  display : none;
+}
+
+#leftSearchControl .gsc-resultsRoot {
+  padding-top : 6px;
+}
+
+#leftSearchControl div.gs-visibleUrl-long {
+  display : block;
+  color:#006699;
+}
+
+#leftSearchControl .gsc-webResult {
+  padding:0 0 20px 0;
+}
+
+.gsc-webResult div.gs-visibleUrl-short,
+table.gsc-branding,
+.gsc-clear-button {
+  display : none;
+}
+
+.gsc-cursor-box .gsc-cursor div.gsc-cursor-page,
+.gsc-cursor-box .gsc-trailing-more-results a.gsc-trailing-more-results,
+#leftSearchControl a,
+#leftSearchControl a b {
+  color:#006699;
+}
+
+.gsc-resultsHeader {
+  display: none;
+}
+
+/* Disable built in search forms */
+.gsc-control form.gsc-search-box {
+  display : none;
+}
+table.gsc-search-box {
+  margin:6px 0 0 0;
+  border-collapse:collapse;
+}
+
+td.gsc-input {
+  padding:0 2px;
+  width:100%;
+  vertical-align:middle;
+}
+
+input.gsc-input {
+  border:1px solid #BCCDF0;
+  width:99%;
+  padding-left:2px;
+  font-size:.95em;
+}
+
+td.gsc-search-button {
+  text-align: right;
+  padding:0;
+  vertical-align:top;
+}
+
+
+#searchResults {
+  overflow:hidden; /* because the repositioned page links makes the section think it needs to scroll
+(it doesn't) */
+  height:auto;
+}
+
+#searchResults .gsc-control {
+  position:relative;
+  width:auto;
+  padding:0 0 10px;
+}
+
+#searchResults .gsc-tabsArea {
+  position:relative;
+  white-space:nowrap;
+  float:left;
+  width:200px;
+}
+
+#searchResults .gsc-above-wrapper-area {
+  display:none;
+}
+
+#searchResults .gsc-resultsbox-visible {
+  float:left;
+  width:720px;
+  margin-left:20px;
+}
+
+#searchResults .gsc-tabHeader {
+  padding: 3px 6px;
+  position:relative;
+  width:auto;
+  display:block;
+}
+
+#searchResults h2#searchTitle {
+  padding:0;
+  margin:5px 0;
+  border:none;
+}
+
+#searchResults h2#searchTitle em {
+  font-style:normal;
+  color:#33B5E5;
+}
+
+#searchResults .gsc-table-result {
+  margin:5px 0 10px 0;
+  background-color:transparent;
+}
+#searchResults .gs-web-image-box, .gs-promotion-image-box {
+  width:120px;
+}
+#searchResults .gs-web-image-box img.gs-image, .gs-promotion-image-box img.gs-promotion-image {
+  max-width:120px;
+}
+
+#searchResults .gsc-table-result .gsc-thumbnail {
+  padding:0 20px 0 0;
+}
+
+#searchResults td {
+  background-color:transparent;
+}
+
+#searchResults .gsc-expansionArea {
+  position:relative;
+}
+#searchResults .gsc-tabsArea .gsc-cursor-box {
+  width:200px;
+  padding:20px 0 0 1px;
+}
+#searchResults .gsc-cursor-page {
+  display:inline-block;
+  float:left;
+  margin:-1px 0 0 -1px;
+  padding:0;
+  height:27px;
+  width:27px;
+  text-align:center;
+  line-height:2;
+}
+
+#searchResults .gsc-tabHeader.gsc-tabhInactive,
+#searchResults .gsc-cursor-page {
+  text-decoration:none;
+  color:#258AAF;
+  border: solid 1px #DADADA;
+}
+
+#searchResults .gsc-tabHeader.gsc-tabhInactive:hover,
+#searchResults .gsc-cursor-page:hover {
+  border-color: #DBDBDB;
+  background-color: #F3F3F3;
+  background-image: -webkit-gradient(linear, left top, left bottom, from(#F9F9F9), to(#ECECEC));
+  background-image: -webkit-linear-gradient(top, #F9F9F9, #ECECEC);
+  background-image: -moz-linear-gradient(top, #F9F9F9, #ECECEC);
+  background-image: -ms-linear-gradient(top, #F9F9F9, #ECECEC);
+  background-image: -o-linear-gradient(top, #F9F9F9, #ECECEC);
+  background-image: linear-gradient(top, #F9F9F9, #ECECEC);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#f9f9f9',
+EndColorStr='#ececec');
+  color: #33B5E5;
+}
+
+#searchResults .gsc-tabHeader.gsc-tabhActive,
+#searchResults .gsc-tabHeader.gsc-tabhActive:hover,
+#searchResults .gsc-cursor-page.gsc-cursor-current-page,
+#searchResults .gsc-cursor-page.gsc-cursor-current-page:hover {
+  color:#fff;
+  background-color: #09C;
+  background-image: -webkit-gradient(linear, left top, left bottom, from(#2FADDB), to(#09C));
+  background-image: -webkit-linear-gradient(top, #2FADDB, #09C);
+  background-image: -moz-linear-gradient(top, #2FADDB, #09C);
+  background-image: -ms-linear-gradient(top, #2FADDB, #09C);
+  background-image: -o-linear-gradient(top, #2FADDB, #09C);
+  background-image: linear-gradient(top, #2FADDB, #09C);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#2faddb', EndColorStr='#09c');
+  border: 1px solid #3990AB;
+  z-index:100;
+}
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+/*********** PREVIOUSLY dac-styles.css ***************/
+
+
+
+
+
+::-webkit-selection,
+::-moz-selection,
+::selection {
+  background-color: #0099cc;
+  color: #fff; }
+
+#header {
+  border-bottom:0;
+}
+
+#header .wrap {
+  max-width:940px;
+  height:41px;
+  border-bottom:1px solid;
+  border-color: #ccc;
+  position:relative;
+}
+
+.about #header .wrap {
+  border-color: #9933CC;
+}
+
+.design #header .wrap {
+  border-color: #33b5e5;
+}
+
+.develop #header .wrap {
+  border-color: #F80;
+}
+
+.distribute #header .wrap {
+  border-color: #9C0;
+}
+
+.logo a {
+  width:123px;
+  float:left;
+}
+
+#header .logo {
+  margin-top: -6px;
+  margin-left: 0px;
+  margin-bottom:0px;
+  width: 160px;
+  padding-right:10px;
+}
+
+.search {
+  height:25px;
+  margin-top: -3px;
+  margin-bottom: 0px;
+}
+
+
+
+/* Quicknav */
+.btn-quicknav {
+  width:20px;
+  height:28px;
+  float:left;
+  margin-left:6px;
+  padding-right:10px;
+  position:relative;
+  cursor:pointer;
+  border-right:1px solid #CCC;
+}
+
+.btn-quicknav a {
+  zoom:1;
+  position:absolute;
+  top:13px;
+  left:5px;
+  display:block;
+  text-indent:-9999em;
+  width:10px;
+  height:5px;
+  background:url(../images/quicknav_arrow.png) no-repeat;
+}
+
+.btn-quicknav a.arrow-active {
+  background-position: 0 -5px;
+  display:none;
+}
+
+#header-wrap.quicknav a.arrow-inactive {
+  display:none;
+}
+
+.btn-quicknav.active a.arrow-active {
+  display:block;
+}
+
+.nav-x li {
+  display:block;
+  float:left;
+  margin-right:45px;
+  -webkit-transition: all 0.25s linear;
+      -moz-transition: all 0.25s linear;
+       -ms-transition: all 0.25s linear;
+        -o-transition: all 0.25s linear;
+           transition: all 0.25s linear;
+}
+
+#header-wrap.quicknav .nav-x li {
+  min-width:160px;
+  margin-right:20px;
+}
+
+#header-wrap.quicknav li.last {
+  margin-right:0px;
+}
+
+#quicknav {
+ float:none; 
+ clear:both;
+ margin-left:180px;
+ margin-top:-30px;
+ display:none;
+ overflow:hidden;
+}
+
+#header-wrap.quicknav #quicknav {
+
+}
+
+#quicknav ul {
+  margin:10px 0;
+  padding:0;
+}
+
+#quicknav ul li.design {
+  border-top:1px solid #33b5e5;
+}
+
+#quicknav ul li.develop {
+  border-top:1px solid #FF8800;
+}
+
+#quicknav ul li.distribute {
+  border-top:1px solid #99cc00;
+}
+
+#quicknav ul li {
+  display:block;
+  float:left;
+  margin:0 20px 0 0;
+  min-width:140px;
+}
+
+#quicknav ul li.last {
+  margin-right:0px;
+}
+
+#quicknav ul li ul li {
+  float:none;
+}
+
+#quicknav ul li ul li a {
+  color:#222;
+}
+
+#quicknav ul li li ul,
+#quicknav ul li li ul li {
+  margin:0;
+}
+
+#quicknav ul li li ul li:before {
+  content:"\21B3";
+}
+
+#header-wrap {
+   -webkit-transition: all 0.25s ease-out;
+      -moz-transition: all 0.25s ease-out;
+       -ms-transition: all 0.25s ease-out;
+        -o-transition: all 0.25s ease-out;
+           transition: all 0.25s ease-out;
+
+}
+
+#header-wrap.quicknav {
+  height:170px;
+  
+}
+
+/* SEARCH AND MORE */
+.search {
+  position: absolute;
+  width: 50px;
+  height:28px;
+  display: block;
+  margin-top:-3px;
+  margin-bottom:7px;
+  overflow:hidden;
+  z-index:100;
+  right:54px;
+  -webkit-transition: width 0.4s ease;
+     -moz-transition: width 0.4s ease;
+       -o-transition: width 0.4s ease;
+          transition: width 0.4s ease;
+}
+
+.search #search-btn {
+  width:50px;
+  height:28px;
+  background:url(../images/icon_search.png) no-repeat;
+  float:left;
+}
+
+.search-inner {
+  width:245px;
+}
+
+.search:hover, .search.active {
+  width:245px;
+}
+
+.search .bottom, .search .left, .search .right {
+	position: absolute;
+	background-color: #a2a2a2
+}
+
+.search .bottom {
+	width: 214px;
+	height: 1px;
+	top: 24px;
+	left: 0
+}
+
+.search .left, .search .right {	
+	height: 5px;
+	width: 1px
+}
+
+.search .left {
+  top: 22px;
+  left: 56px;
+  background-color:#CCC;
+}
+
+.search .right {
+  top: 22px;
+  left: 238px;
+  background-color:#CCC;
+}
+
+.search form {
+	margin-top: 2px;
+	width: 162px;
+	float:left;
+}
+
+.search form input {
+	color: #2f2f2f;
+	font-size: 0.95em;
+	width: 178px;  
+	border: none;
+	margin-left: 6px;  
+	z-index: 1500;  
+  position: relative;
+	background-color: transparent;
+	border-bottom:1px solid #CCC;
+	padding:0 0 0 4px;
+	outline:none;
+	height:24px;
+}
+
+.search:hover form input {
+  border-bottom:1px solid #33B5E5;
+}
+
+.search:hover .bottom, .search:hover .left, .search:hover .right {
+	background-color: #33b5e5;
+}
+
+.search:hover #search-btn {
+	background-position: 0 -28px
+}
+
+.search form input:focus {
+	color: #222;
+	font-weight: bold
+}
+
+.moremenu {
+  float: right;
+	position: relative;
+	width: 50px;
+	height:28px;
+  display: block;
+  margin-top:-3px;
+  margin-bottom:7px;
+  overflow:hidden;
+  -webkit-transition: width 0.25s ease;
+     -moz-transition: width 0.25s ease;
+       -o-transition: width 0.25s ease;
+          transition: width 0.25s ease;
+}
+
+.moremenu #more-btn {
+  width:40px;
+  height:28px;
+  background:url(../images/icon_more.png) no-repeat;
+  border-left:1px solid #CCC;
+  float:left;
+  cursor:pointer;
+}
+
+.moremenu:hover #more-btn {
+  background-position:0 -28px;
+}
+
+.morehover {
+  position:absolute;
+  right:6px;
+  top:-9px;
+  width:40px;
+  height:35px;
+  z-index:99;
+  overflow:hidden;
+
+  -webkit-opacity:0;
+     -moz-opacity:0;
+       -o-opacity:0;
+          opacity:0;
+
+  -webkit-transform-origin:100% 0%;
+     -moz-transform-origin:100% 0%; 
+       -o-transform-origin:100% 0%;
+          transform-origin:100% 0%;
+  
+  -webkit-transition-property: -webkit-opacity;
+  -webkit-transition-duration: .25s;
+  -webkit-transition-timing-function:ease;
+
+  -moz-transition-property: -webkit-opacity;
+  -moz-transition-duration: .25s;
+  -moz-transition-timing-function:ease;
+
+  -o-transition-property: -webkit-opacity;
+  -o-transition-duration: .25s;
+  -o-transition-timing-function:ease;
+  
+  -transition-property: -webkit-opacity;
+  -transition-duration: .25s;
+  -transition-timing-function:ease;
+}
+
+.morehover:hover {
+  opacity:1;
+  height:345px;
+  width:268px;
+  -webkit-transition-property:height,  -webkit-opacity;
+}
+
+.morehover .top {
+  width:268px;
+  height:39px;
+  background:url(../images/more_top.png) no-repeat;
+}
+
+.morehover .mid {
+  width:228px;
+  background:url(../images/more_mid.png) repeat-y;
+  padding:10px 20px 10px 20px;
+}
+
+.morehover .mid .header {
+  border-bottom:1px solid #ccc;
+  font-weight:bold;
+}
+
+.morehover .bottom {
+  width:268px;
+  height:6px;
+  background:url(../images/more_bottom.png) no-repeat;
+}
+
+.morehover ul {
+  margin:10px 10px 20px 0;
+}
+
+.morehover ul li {
+  list-style:none;
+}
+
+.morehover ul li.active a,
+.morehover ul li.active a:hover {
+  color:#222 !important;
+}
+
+.morehover ul li.active img {
+  margin-right:4px;
+}
+
+
+
+
+/* MARQUEE */
+.slideshow-container {
+	width:100%;
+	overflow:hidden;
+	position:relative;
+}
+.slideshow-container .slideshow-prev {
+	position:absolute;
+	top:50%;
+	left:0px;
+	margin-top:-36px;
+	z-index:99;
+}
+.slideshow-container .slideshow-next {
+	position:absolute;
+	top:50%;
+	margin-top:-36px;
+	z-index:99;
+	right:0px;
+}
+
+.slideshow-container .pagination {
+	position:absolute;
+	bottom:20px;
+	width:100%;
+	text-align:center;
+	z-index:99;
+}
+.slideshow-container .pagination ul {
+	margin:0;
+}
+.slideshow-container .pagination ul li{
+	display: inline-block;
+	width:12px;
+	height:12px;
+	text-indent:-8000px;
+	list-style:none;
+	margin: 0 2px;
+	border-radius:6px;
+	background-color:#ccc;
+	cursor:pointer;
+        -webkit-transition:color .5s ease-in;  
+        -moz-transition:color .5s ease-in;  
+        -o-transition:color .5s ease-in;  
+        transition:color .5s ease-in;
+}
+.slideshow-container .pagination ul li:hover {
+	background-color:#999;
+}
+.slideshow-container .pagination ul li.active {
+	background-color:#33b5e5;
+}
+.slideshow-container .pagination ul li.active:hover {
+	background-color:#33b5e5;
+}
+.slideshow-container ul li {
+	display:inline;
+	list-style:none;
+}
+
+
+
+
+a.download-sdk {
+    float:right;
+    margin:-10px 0;
+    height:30px;
+    padding-top:4px;
+    padding-bottom:0px;
+}
+
+#nav-x {
+  padding-top: 14px;
+}
+
+#nav-x .wrap,
+#searchResults.wrap {
+    max-width:940px;
+    border-bottom:1px solid #CCC;
+    min-height:34px;
+    
+}
+
+
+.nav-x {
+    margin-left:0;
+    margin-bottom:0;
+}
+
+
+
+
+
+
+
+
+
+
+/*
+ * CSS Styles that are needed by jScrollPane for it to operate correctly.
+ */
+
+.jspContainer {
+  overflow: hidden;
+  position: relative;
+}
+
+.jspPane {
+  position: absolute;
+  overflow: hidden;
+  width:auto !important; /* to avoid cut-off api names in reference in horiz scroll */
+}
+
+.jspVerticalBar {
+  position: absolute;
+  top: 0;
+  right: 0;
+  width: 4px;
+  height: 100%;
+  background: #f5f5f5;
+}
+
+.jspHorizontalBar {
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  width: 100%;
+  height: 4px;
+  background: #f5f5f5;
+}
+
+.jspVerticalBar *,
+.jspHorizontalBar * {
+  margin: 0;
+  padding: 0;
+}
+.jspCap {
+  display: block;
+}
+
+.jspVerticalBar .jspCap {
+  height: 4px;
+}
+
+.jspHorizontalBar .jspCap {
+  width: 0;
+  height: 100%;
+}
+
+.jspHorizontalBar .jspCap {
+  float: left;
+}
+
+.jspTrack {
+  position: relative;
+}
+
+.jspDrag {
+  background: #bbb;
+  position: relative;
+  top: 0;
+  left: 0;
+  cursor: pointer;
+}
+
+.jspDrag:hover,
+.jspDrag:active {
+  border-color: #09c;
+  background-color: #4cadcb;
+  background-image: -webkit-gradient(linear, left top, right top, from(#5dbcd9), to(#4cadcb));
+  background-image: -webkit-linear-gradient(left, #5dbcd9, #4cadcb);
+  background-image: -moz-linear-gradient(left, #5dbcd9, #4cadcb);
+  background-image: -ms-linear-gradient(left, #5dbcd9, #4cadcb);
+  background-image: -o-linear-gradient(left, #5dbcd9, #4cadcb);
+  background-image: linear-gradient(left, #5dbcd9, #4cadcb);
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#5dbcd9', EndColorStr='#4cadcb');	
+}
+
+.jspHorizontalBar .jspTrack,
+.jspHorizontalBar .jspDrag {
+  float: left;
+  height: 100%;
+}
+
+.jspArrow {
+  background: #999;
+  text-indent: -20000px;
+  display: block;
+  cursor: pointer;
+}
+
+.jspArrow.jspDisabled {
+  cursor: default;
+  background: #ccc;
+}
+
+.jspVerticalBar .jspArrow {
+  height: 16px;
+}
+
+.jspHorizontalBar .jspArrow {
+  width: 16px;
+  float: left;
+  height: 100%;
+}
+
+.jspVerticalBar .jspArrow:focus {
+  outline: none;
+}
+
+.jspCorner {
+  float: left;
+  height: 100%;
+}
+
+/* Yuk! CSS Hack for IE6 3 pixel bug :( */
+* html .jspCorner {
+  margin: 0 -3px 0 0;
+}
+/******* end of jscrollpane *********/
+
+
+
+
+
+/************ DEVELOP HOMEPAGE ******************/
+
+/* Slideshow */
+.slideshow-develop {
+  height: 300px;
+  width: 940px;
+  position: relative;
+  overflow:hidden;
+}
+.slideshow-develop .frame {
+  width: 940px;
+  height: 300px;
+}
+.slideshow-develop img.play {
+  width:350px;
+  margin:20px 0 0 90px;
+  -webkit-transform: perspective(800px ) rotateY( 35deg );
+  box-shadow: -16px 20px 40px rgba(0, 0, 0, 0.3);
+  -moz-box-shadow: -16px 20px 40px rgba(0, 0, 0, 0.3);
+  -webkit-box-shadow: -16px 20px 40px rgba(0, 0, 0, 0.3);
+}
+.slideshow-develop img.play.no-shadow {
+    box-shadow: none;
+    -moz-box-shadow: none;
+    -webkit-box-shadow: none;
+}
+.slideshow-develop img.play.no-transform {
+  -webkit-transform: none;
+}
+.slideshow-develop a.slideshow-next {
+  background: url(../images/arrow-right-develop.png);
+}
+.slideshow-develop a.slideshow-prev {
+  background: url(../images/arrow-left-develop.png);
+}
+.slideshow-develop .content-right {
+  float: left;
+}
+.slideshow-develop .content-right p.title-intro {
+  position:absolute;
+  margin:0;
+}
+.slideshow-develop .content-right h2 {
+  padding:0;
+  margin-bottom:10px;
+  border:none;
+}
+.slideshow-develop .item {
+  height: 300px;
+  width: 940px;
+}
+.slideshow-develop .pagination ul li.active {
+  background-color: #F80;
+}
+.slideshow-develop .pagination ul li.active:hover {
+  background-color: #F80;
+}
+
+/* Feeds */
+.feed ul {
+  margin: 0;
+}
+.feed .feed-nav {
+  height: 25px;
+  border-bottom: 1px solid #CCC;
+}
+.feed .feed-nav li {
+  list-style: none;
+  float: left;
+  margin-right: 25px;
+  cursor: pointer;
+}
+.feed .feed-nav li.active {
+  color: #000;
+  border-bottom: 4px solid #F80;
+}
+.feed .feed-container {
+  overflow: hidden;
+  width: 460px;
+}
+.feed .feed-container .feed-frame {
+  width: 1000px;
+}
+.feed .feed-container .feed-frame ul {
+  float: left;
+  width:460px;
+}
+.feed .feed-container .feed-frame ul ul {
+  float: none;
+  margin:10px 0 0 30px;
+}
+.feed .feed-container .feed-frame li {
+  list-style: none;
+  margin: 20px 0 20px 0;
+  width: 460px;
+  height:93px;
+}
+.feed .feed-container .feed-frame li.playlist {
+  height:auto;
+}
+.feed .feed-container .feed-frame li.playlist a {
+  height:93px;
+  display:block;
+}
+.feed .feed-container .feed-frame li.more {
+  height:20px;
+  margin:10px 0 5px 5px;
+}
+.feed .feed-container .feed-frame li.more a {
+  height:inherit;
+}
+.feed .feed-container .feed-frame li.playlist-video {
+  list-style: none;
+  margin: 0;
+  width: 460px;
+  height:55px;
+  font-size:12px;
+}
+.feed .feed-container .feed-frame li.playlist-video a {
+  height:45px;
+  padding:5px;
+}
+.feed .feed-container .feed-frame li.playlist-video h5 {
+  font-size:12px;
+  line-height:13px;
+  margin:0;
+}
+.feed .feed-container .feed-frame li.playlist-video p {
+  margin:5px 0 0;
+  line-height:15px;
+}
+.feed-container .feed-frame div.feed-image {
+  float: left;
+  border: 1px solid #999;
+  margin:0 20px 0 0;
+  width:122px;
+  height:92px;
+  background:url('../images/blog-default.png') no-repeat 0 0;
+  background-size:180px;
+}
+#jd-content .feed .feed-container .feed-frame li img {
+  float: left;
+  border: 1px solid #999;
+  margin:0 20px 0 0;
+  width:122px;
+  height:92px;
+}
+#jd-content .feed .feed-container .feed-frame li.playlist-video img {
+  width:inherit;
+  height:inherit;
+}
+
+.feed .feed-container .feed-frame li a,
+.feed .feed-container .feed-frame li a:active {
+  color:#555 !important;
+}
+
+.feed .feed-container .feed-frame li a:hover,
+.feed .feed-container .feed-frame li a:hover * {
+  color:#7AA1B0 !important;
+}
+
+/* Video player */
+#player-wrapper {
+  display:none;
+  margin: -1px auto 0;
+  position: relative;
+  width: 940px;
+  height: 0px;
+}
+#player-frame {
+  background: #EFEFEF;
+  border: 1px solid #CCC;
+  padding: 0px 207px;
+  z-index: 10; /* stay above marque, but below search suggestions */
+  width: 525px;
+  height: 330px;
+  position: relative;
+}
+
+
+
+/************ DISTRIBUTE HOMEPAGE ***************/
+
+.marquee {
+  width: 760px;
+}
+.marquee .main-img {
+  float: left;
+  margin-top: 20px;
+  width: 490px;
+}
+.marquee .copy {
+  width: 270px;
+  float: left;
+  margin-top: 30px;
+}
+.distribute-features {
+  margin: 0;
+}
+.distribute-features ul {
+  margin: 0;
+}
+.distribute-features ul li {
+  list-style: none;
+  float: left;
+  border-top: 1px solid #9C0;
+  width: 220px;
+  margin-right: 50px;
+}
+.distribute-features ul li.last {
+  margin-right: 0px;
+}
+
+
+/************ DEVELOP TOPIC CONTAINERS ************/
+
+.landing-banner,
+.landing-docs {
+  margin:20px 0 0;
+}
+.landing-banner {
+  height:280px;
+}
+.landing-banner .col-6:first-child,
+.landing-docs .col-6:first-child {
+  margin-left:0;
+}
+.landing-banner .col-6:last-child,
+.landing-docs .col-6:last-child {
+  margin-right:0;
+}
+
+.landing-banner h1 {
+  margin-top:0;
+}
+.landing-docs h3 {
+  font-size:14px;
+  line-height:21px;
+  color:#555;
+  text-transform:uppercase;
+  border-bottom:1px solid #CCC;
+  margin:0 0 20px;
+}
+.landing-docs a {
+  color:#333 !important;
+}
+.landing-docs a:hover,
+.landing-docs a:hover * {
+  color:#7AA1B0 !important
+}
+
+.plusone {
+  float:right;
+}
\ No newline at end of file
diff --git a/docs/html/guide/google/gcm/server-javadoc/deprecated-list.html b/docs/html/guide/google/gcm/server-javadoc/deprecated-list.html
index 0082614..729b2bf 100644
--- a/docs/html/guide/google/gcm/server-javadoc/deprecated-list.html
+++ b/docs/html/guide/google/gcm/server-javadoc/deprecated-list.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:04:57 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:12:10 PDT 2012 -->
 <TITLE>
 Deprecated List
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="default.css" TITLE="Style">
 
 <SCRIPT type="text/javascript">
 function windowTitle()
diff --git a/docs/html/guide/google/gcm/server-javadoc/help-doc.html b/docs/html/guide/google/gcm/server-javadoc/help-doc.html
index 72f9fb2..7f5286c 100644
--- a/docs/html/guide/google/gcm/server-javadoc/help-doc.html
+++ b/docs/html/guide/google/gcm/server-javadoc/help-doc.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:04:57 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:12:10 PDT 2012 -->
 <TITLE>
 API Help
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="default.css" TITLE="Style">
 
 <SCRIPT type="text/javascript">
 function windowTitle()
diff --git a/docs/html/guide/google/gcm/server-javadoc/index-all.html b/docs/html/guide/google/gcm/server-javadoc/index-all.html
index e6325cb..0b095ec 100644
--- a/docs/html/guide/google/gcm/server-javadoc/index-all.html
+++ b/docs/html/guide/google/gcm/server-javadoc/index-all.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:04:57 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:12:10 PDT 2012 -->
 <TITLE>
 Index
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="./stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="./default.css" TITLE="Style">
 
 <SCRIPT type="text/javascript">
 function windowTitle()
@@ -121,9 +121,16 @@
 <DT><A HREF="./com/google/android/gcm/server/Constants.html#ERROR_DEVICE_QUOTA_EXCEEDED"><B>ERROR_DEVICE_QUOTA_EXCEEDED</B></A> - 
 Static variable in class com.google.android.gcm.server.<A HREF="./com/google/android/gcm/server/Constants.html" title="class in com.google.android.gcm.server">Constants</A>
 <DD>Too many messages sent by the sender to a specific device.
+<DT><A HREF="./com/google/android/gcm/server/Constants.html#ERROR_INTERNAL_SERVER_ERROR"><B>ERROR_INTERNAL_SERVER_ERROR</B></A> - 
+Static variable in class com.google.android.gcm.server.<A HREF="./com/google/android/gcm/server/Constants.html" title="class in com.google.android.gcm.server">Constants</A>
+<DD>A particular message could not be sent because the GCM servers encountered
+ an error.
 <DT><A HREF="./com/google/android/gcm/server/Constants.html#ERROR_INVALID_REGISTRATION"><B>ERROR_INVALID_REGISTRATION</B></A> - 
 Static variable in class com.google.android.gcm.server.<A HREF="./com/google/android/gcm/server/Constants.html" title="class in com.google.android.gcm.server">Constants</A>
 <DD>Bad registration_id.
+<DT><A HREF="./com/google/android/gcm/server/Constants.html#ERROR_INVALID_TTL"><B>ERROR_INVALID_TTL</B></A> - 
+Static variable in class com.google.android.gcm.server.<A HREF="./com/google/android/gcm/server/Constants.html" title="class in com.google.android.gcm.server">Constants</A>
+<DD>Time to Live value passed is less than zero or more than maximum.
 <DT><A HREF="./com/google/android/gcm/server/Constants.html#ERROR_MESSAGE_TOO_BIG"><B>ERROR_MESSAGE_TOO_BIG</B></A> - 
 Static variable in class com.google.android.gcm.server.<A HREF="./com/google/android/gcm/server/Constants.html" title="class in com.google.android.gcm.server">Constants</A>
 <DD>The payload of the message is too big, see the limitations.
@@ -145,8 +152,8 @@
 <DD>Too many messages sent by the sender.
 <DT><A HREF="./com/google/android/gcm/server/Constants.html#ERROR_UNAVAILABLE"><B>ERROR_UNAVAILABLE</B></A> - 
 Static variable in class com.google.android.gcm.server.<A HREF="./com/google/android/gcm/server/Constants.html" title="class in com.google.android.gcm.server">Constants</A>
-<DD>Used to indicate that a particular message could not be sent because
- the GCM servers were not available.
+<DD>A particular message could not be sent because the GCM servers were not
+ available.
 </DL>
 <HR>
 <A NAME="_G_"><!-- --></A><H2>
diff --git a/docs/html/guide/google/gcm/server-javadoc/index.html b/docs/html/guide/google/gcm/server-javadoc/index.html
index efcce9e..d8ba0ef 100644
--- a/docs/html/guide/google/gcm/server-javadoc/index.html
+++ b/docs/html/guide/google/gcm/server-javadoc/index.html
@@ -2,7 +2,7 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc on Thu Jun 21 12:04:57 PDT 2012-->
+<!-- Generated by javadoc on Mon Jul 16 14:12:10 PDT 2012-->
 <TITLE>
 Generated Documentation (Untitled)
 </TITLE>
diff --git a/docs/html/guide/google/gcm/server-javadoc/overview-tree.html b/docs/html/guide/google/gcm/server-javadoc/overview-tree.html
index 034838b..b8e28ad 100644
--- a/docs/html/guide/google/gcm/server-javadoc/overview-tree.html
+++ b/docs/html/guide/google/gcm/server-javadoc/overview-tree.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:04:57 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:12:10 PDT 2012 -->
 <TITLE>
 Class Hierarchy
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="default.css" TITLE="Style">
 
 <SCRIPT type="text/javascript">
 function windowTitle()
diff --git a/docs/html/guide/google/gcm/server-javadoc/serialized-form.html b/docs/html/guide/google/gcm/server-javadoc/serialized-form.html
index 86cd61a..7a1378f 100644
--- a/docs/html/guide/google/gcm/server-javadoc/serialized-form.html
+++ b/docs/html/guide/google/gcm/server-javadoc/serialized-form.html
@@ -2,14 +2,14 @@
 <!--NewPage-->
 <HTML>
 <HEAD>
-<!-- Generated by javadoc (build 1.6.0_20) on Thu Jun 21 12:04:57 PDT 2012 -->
+<!-- Generated by javadoc (build 1.6.0_26) on Mon Jul 16 14:12:10 PDT 2012 -->
 <TITLE>
 Serialized Form
 </TITLE>
 
-<META NAME="date" CONTENT="2012-06-21">
+<META NAME="date" CONTENT="2012-07-16">
 
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="default.css" TITLE="Style">
 
 <SCRIPT type="text/javascript">
 function windowTitle()
diff --git a/docs/html/sdk/api_diff/16/changes.html b/docs/html/sdk/api_diff/16/changes.html
index 80b91e4..6460252 100644
--- a/docs/html/sdk/api_diff/16/changes.html
+++ b/docs/html/sdk/api_diff/16/changes.html
@@ -4,7 +4,7 @@
 <meta name="generator" content="JDiff v1.1.0">
 <!-- Generated by the JDiff Javadoc doclet -->
 <!-- (http://www.jdiff.org) -->
-<!-- on Tue Jun 26 22:31:04 PDT 2012 -->
+<!-- on Mon Jul 16 10:58:42 PDT 2012 -->
 <meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
 <meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
 <TITLE>
diff --git a/docs/html/sdk/api_diff/16/changes/alldiffs_index_additions.html b/docs/html/sdk/api_diff/16/changes/alldiffs_index_additions.html
index 66ecf7d..d47f571 100644
--- a/docs/html/sdk/api_diff/16/changes/alldiffs_index_additions.html
+++ b/docs/html/sdk/api_diff/16/changes/alldiffs_index_additions.html
@@ -152,6 +152,8 @@
 <!-- Field ACTION_VOICE_SEARCH_HANDS_FREE -->
 <nobr><A HREF="android.speech.RecognizerIntent.html#android.speech.RecognizerIntent.ACTION_VOICE_SEARCH_HANDS_FREE" class="hiddenlink" target="rightframe">ACTION_VOICE_SEARCH_HANDS_FREE</A>
 </nobr><br>
+<!-- Class ActionProvider.VisibilityListener -->
+<A HREF="pkg_android.view.html#ActionProvider.VisibilityListener" class="hiddenlink" target="rightframe"><b><i>ActionProvider.VisibilityListener</i></b></A><br>
 <!-- Class ActivityOptions -->
 <A HREF="pkg_android.app.html#ActivityOptions" class="hiddenlink" target="rightframe"><b>ActivityOptions</b></A><br>
 <!-- Method addAction -->
@@ -543,9 +545,6 @@
 <!-- Method finishAffinity -->
 <nobr><A HREF="android.app.Activity.html#android.app.Activity.finishAffinity_added()" class="hiddenlink" target="rightframe"><b>finishAffinity</b>
 ()</A></nobr><br>
-<!-- Field FLAG_ACTIVITY_CLOSE_SYSTEM_DIALOGS -->
-<nobr><A HREF="android.content.Intent.html#android.content.Intent.FLAG_ACTIVITY_CLOSE_SYSTEM_DIALOGS" class="hiddenlink" target="rightframe">FLAG_ACTIVITY_CLOSE_SYSTEM_DIALOGS</A>
-</nobr><br>
 <!-- Field FLAG_INCLUDE_NOT_IMPORTANT_VIEWS -->
 <nobr><A HREF="android.accessibilityservice.AccessibilityServiceInfo.html#android.accessibilityservice.AccessibilityServiceInfo.FLAG_INCLUDE_NOT_IMPORTANT_VIEWS" class="hiddenlink" target="rightframe">FLAG_INCLUDE_NOT_IMPORTANT_VIEWS</A>
 </nobr><br>
@@ -1262,6 +1261,9 @@
 <!-- Method isVirtual -->
 <nobr><A HREF="android.view.InputDevice.html#android.view.InputDevice.isVirtual_added()" class="hiddenlink" target="rightframe"><b>isVirtual</b>
 ()</A></nobr><br>
+<!-- Method isVisible -->
+<nobr><A HREF="android.view.ActionProvider.html#android.view.ActionProvider.isVisible_added()" class="hiddenlink" target="rightframe"><b>isVisible</b>
+()</A></nobr><br>
 <!-- Method isVisibleToUser -->
 <nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.isVisibleToUser_added()" class="hiddenlink" target="rightframe"><b>isVisibleToUser</b>
 ()</A></nobr><br>
@@ -1472,6 +1474,11 @@
 <A HREF="pkg_android.media.html#MediaRouter.SimpleCallback" class="hiddenlink" target="rightframe"><b>MediaRouter.SimpleCallback</b></A><br>
 <!-- Class MediaRouter.UserRouteInfo -->
 <A HREF="pkg_android.media.html#MediaRouter.UserRouteInfo" class="hiddenlink" target="rightframe"><b>MediaRouter.UserRouteInfo</b></A><br>
+<!-- Class MediaRouter.VolumeCallback -->
+<A HREF="pkg_android.media.html#MediaRouter.VolumeCallback" class="hiddenlink" target="rightframe"><b>MediaRouter.VolumeCallback</b></A><br>
+<!-- Field mediaRouteTypes -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.mediaRouteTypes" class="hiddenlink" target="rightframe">mediaRouteTypes</A>
+</nobr><br>
 <!-- Class MediaSyncEvent -->
 <A HREF="pkg_android.media.html#MediaSyncEvent" class="hiddenlink" target="rightframe"><b>MediaSyncEvent</b></A><br>
 <!-- Field METHOD_ALARM -->
@@ -1660,6 +1667,9 @@
 <!-- Field OPTION_APPWIDGET_MIN_WIDTH -->
 <nobr><A HREF="android.appwidget.AppWidgetManager.html#android.appwidget.AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH" class="hiddenlink" target="rightframe">OPTION_APPWIDGET_MIN_WIDTH</A>
 </nobr><br>
+<!-- Method overridesItemVisibility -->
+<nobr><A HREF="android.view.ActionProvider.html#android.view.ActionProvider.overridesItemVisibility_added()" class="hiddenlink" target="rightframe"><b>overridesItemVisibility</b>
+()</A></nobr><br>
 <!-- Field parentActivityName -->
 <A NAME="P"></A>
 <br><font size="+2">P</font>&nbsp;
@@ -1846,6 +1856,9 @@
 <!-- Field READ_USER_DICTIONARY -->
 <nobr><A HREF="android.Manifest.permission.html#android.Manifest.permission.READ_USER_DICTIONARY" class="hiddenlink" target="rightframe">READ_USER_DICTIONARY</A>
 </nobr><br>
+<!-- Method refreshVisibility -->
+<nobr><A HREF="android.view.ActionProvider.html#android.view.ActionProvider.refreshVisibility_added()" class="hiddenlink" target="rightframe"><b>refreshVisibility</b>
+()</A></nobr><br>
 <!-- Method registerOnLoadCanceledListener -->
 <nobr><A HREF="android.content.Loader.html#android.content.Loader.registerOnLoadCanceledListener_added(android.content.Loader.OnLoadCanceledListener<D>)" class="hiddenlink" target="rightframe"><b>registerOnLoadCanceledListener</b>
 (<code>OnLoadCanceledListener&lt;D&gt;</code>)</A></nobr><br>
@@ -2105,6 +2118,12 @@
 <!-- Method setTextViewCompoundDrawables -->
 <nobr><A HREF="android.widget.RemoteViews.html#android.widget.RemoteViews.setTextViewCompoundDrawables_added(int, int, int, int, int)" class="hiddenlink" target="rightframe"><b>setTextViewCompoundDrawables</b>
 (<code>int, int, int, int, int</code>)</A></nobr><br>
+<!-- Method setTextViewCompoundDrawablesRelative -->
+<nobr><A HREF="android.widget.RemoteViews.html#android.widget.RemoteViews.setTextViewCompoundDrawablesRelative_added(int, int, int, int, int)" class="hiddenlink" target="rightframe"><b>setTextViewCompoundDrawablesRelative</b>
+(<code>int, int, int, int, int</code>)</A></nobr><br>
+<!-- Method setTextViewTextSize -->
+<nobr><A HREF="android.widget.RemoteViews.html#android.widget.RemoteViews.setTextViewTextSize_added(int, int, float)" class="hiddenlink" target="rightframe"><b>setTextViewTextSize</b>
+(<code>int, int, float</code>)</A></nobr><br>
 <!-- Method setThumbDrawable -->
 <nobr><A HREF="android.widget.Switch.html#android.widget.Switch.setThumbDrawable_added(android.graphics.drawable.Drawable)" class="hiddenlink" target="rightframe"><b>setThumbDrawable</b>
 (<code>Drawable</code>)</A></nobr><br>
@@ -2141,6 +2160,12 @@
 <!-- Method setVideoScalingMode -->
 <nobr><A HREF="android.media.MediaPlayer.html#android.media.MediaPlayer.setVideoScalingMode_added(int)" class="hiddenlink" target="rightframe"><b>setVideoScalingMode</b>
 (<code>int</code>)</A></nobr><br>
+<!-- Method setViewPadding -->
+<nobr><A HREF="android.widget.RemoteViews.html#android.widget.RemoteViews.setViewPadding_added(int, int, int, int, int)" class="hiddenlink" target="rightframe"><b>setViewPadding</b>
+(<code>int, int, int, int, int</code>)</A></nobr><br>
+<!-- Method setVisibilityListener -->
+<nobr><A HREF="android.view.ActionProvider.html#android.view.ActionProvider.setVisibilityListener_added(android.view.ActionProvider.VisibilityListener)" class="hiddenlink" target="rightframe"><b>setVisibilityListener</b>
+(<code>VisibilityListener</code>)</A></nobr><br>
 <!-- Method setVisibleToUser -->
 <nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.setVisibleToUser_added(boolean)" class="hiddenlink" target="rightframe"><b>setVisibleToUser</b>
 (<code>boolean</code>)</A></nobr><br>
diff --git a/docs/html/sdk/api_diff/16/changes/alldiffs_index_all.html b/docs/html/sdk/api_diff/16/changes/alldiffs_index_all.html
index b4e7d1d..02c78b4 100644
--- a/docs/html/sdk/api_diff/16/changes/alldiffs_index_all.html
+++ b/docs/html/sdk/api_diff/16/changes/alldiffs_index_all.html
@@ -178,6 +178,8 @@
 <A HREF="android.view.ActionMode.html" class="hiddenlink" target="rightframe">ActionMode</A><br>
 <!-- Class ActionProvider -->
 <A HREF="android.view.ActionProvider.html" class="hiddenlink" target="rightframe">ActionProvider</A><br>
+<!-- Class ActionProvider.VisibilityListener -->
+<A HREF="pkg_android.view.html#ActionProvider.VisibilityListener" class="hiddenlink" target="rightframe"><b><i>ActionProvider.VisibilityListener</i></b></A><br>
 <!-- Class Activity -->
 <A HREF="android.app.Activity.html" class="hiddenlink" target="rightframe">Activity</A><br>
 <!-- Class ActivityInfo -->
@@ -1083,9 +1085,6 @@
 <!-- Method fitsSystemWindows -->
 <nobr><A HREF="android.view.View.html#android.view.View.fitsSystemWindows_removed()" class="hiddenlink" target="rightframe"><strike>fitsSystemWindows</strike>
 ()</A></nobr><br>
-<!-- Field FLAG_ACTIVITY_CLOSE_SYSTEM_DIALOGS -->
-<nobr><A HREF="android.content.Intent.html#android.content.Intent.FLAG_ACTIVITY_CLOSE_SYSTEM_DIALOGS" class="hiddenlink" target="rightframe">FLAG_ACTIVITY_CLOSE_SYSTEM_DIALOGS</A>
-</nobr><br>
 <!-- Field FLAG_HIGH_PRIORITY -->
 <nobr><A HREF="android.app.Notification.html#android.app.Notification.FLAG_HIGH_PRIORITY" class="hiddenlink" target="rightframe">FLAG_HIGH_PRIORITY</A>
 </nobr><br>
@@ -1986,6 +1985,9 @@
 <!-- Method isVirtual -->
 <nobr><A HREF="android.view.InputDevice.html#android.view.InputDevice.isVirtual_added()" class="hiddenlink" target="rightframe"><b>isVirtual</b>
 ()</A></nobr><br>
+<!-- Method isVisible -->
+<nobr><A HREF="android.view.ActionProvider.html#android.view.ActionProvider.isVisible_added()" class="hiddenlink" target="rightframe"><b>isVisible</b>
+()</A></nobr><br>
 <!-- Method isVisibleToUser -->
 <nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.isVisibleToUser_added()" class="hiddenlink" target="rightframe"><b>isVisibleToUser</b>
 ()</A></nobr><br>
@@ -2264,6 +2266,11 @@
 <A HREF="pkg_android.media.html#MediaRouter.SimpleCallback" class="hiddenlink" target="rightframe"><b>MediaRouter.SimpleCallback</b></A><br>
 <!-- Class MediaRouter.UserRouteInfo -->
 <A HREF="pkg_android.media.html#MediaRouter.UserRouteInfo" class="hiddenlink" target="rightframe"><b>MediaRouter.UserRouteInfo</b></A><br>
+<!-- Class MediaRouter.VolumeCallback -->
+<A HREF="pkg_android.media.html#MediaRouter.VolumeCallback" class="hiddenlink" target="rightframe"><b>MediaRouter.VolumeCallback</b></A><br>
+<!-- Field mediaRouteTypes -->
+<nobr><A HREF="android.R.attr.html#android.R.attr.mediaRouteTypes" class="hiddenlink" target="rightframe">mediaRouteTypes</A>
+</nobr><br>
 <!-- Class MediaStore.MediaColumns -->
 <A HREF="android.provider.MediaStore.MediaColumns.html" class="hiddenlink" target="rightframe"><i>MediaStore.MediaColumns</i></A><br>
 <!-- Class MediaSyncEvent -->
@@ -2560,6 +2567,9 @@
 <!-- Field ORIENTATION_SQUARE -->
 <nobr><A HREF="android.content.res.Configuration.html#android.content.res.Configuration.ORIENTATION_SQUARE" class="hiddenlink" target="rightframe">ORIENTATION_SQUARE</A>
 </nobr><br>
+<!-- Method overridesItemVisibility -->
+<nobr><A HREF="android.view.ActionProvider.html#android.view.ActionProvider.overridesItemVisibility_added()" class="hiddenlink" target="rightframe"><b>overridesItemVisibility</b>
+()</A></nobr><br>
 <!-- Class PackageInfo -->
 <A NAME="P"></A>
 <br><font size="+2">P</font>&nbsp;
@@ -2853,6 +2863,9 @@
 </nobr><br>
 <!-- Class RecognizerIntent -->
 <A HREF="android.speech.RecognizerIntent.html" class="hiddenlink" target="rightframe">RecognizerIntent</A><br>
+<!-- Method refreshVisibility -->
+<nobr><A HREF="android.view.ActionProvider.html#android.view.ActionProvider.refreshVisibility_added()" class="hiddenlink" target="rightframe"><b>refreshVisibility</b>
+()</A></nobr><br>
 <!-- Method registerOnLoadCanceledListener -->
 <nobr><A HREF="android.content.Loader.html#android.content.Loader.registerOnLoadCanceledListener_added(android.content.Loader.OnLoadCanceledListener<D>)" class="hiddenlink" target="rightframe"><b>registerOnLoadCanceledListener</b>
 (<code>OnLoadCanceledListener&lt;D&gt;</code>)</A></nobr><br>
@@ -3321,6 +3334,12 @@
 <!-- Method setTextViewCompoundDrawables -->
 <nobr><A HREF="android.widget.RemoteViews.html#android.widget.RemoteViews.setTextViewCompoundDrawables_added(int, int, int, int, int)" class="hiddenlink" target="rightframe"><b>setTextViewCompoundDrawables</b>
 (<code>int, int, int, int, int</code>)</A></nobr><br>
+<!-- Method setTextViewCompoundDrawablesRelative -->
+<nobr><A HREF="android.widget.RemoteViews.html#android.widget.RemoteViews.setTextViewCompoundDrawablesRelative_added(int, int, int, int, int)" class="hiddenlink" target="rightframe"><b>setTextViewCompoundDrawablesRelative</b>
+(<code>int, int, int, int, int</code>)</A></nobr><br>
+<!-- Method setTextViewTextSize -->
+<nobr><A HREF="android.widget.RemoteViews.html#android.widget.RemoteViews.setTextViewTextSize_added(int, int, float)" class="hiddenlink" target="rightframe"><b>setTextViewTextSize</b>
+(<code>int, int, float</code>)</A></nobr><br>
 <!-- Method setThumbDrawable -->
 <nobr><A HREF="android.widget.Switch.html#android.widget.Switch.setThumbDrawable_added(android.graphics.drawable.Drawable)" class="hiddenlink" target="rightframe"><b>setThumbDrawable</b>
 (<code>Drawable</code>)</A></nobr><br>
@@ -3369,6 +3388,12 @@
 <!-- Method setVideoScalingMode -->
 <nobr><A HREF="android.media.MediaPlayer.html#android.media.MediaPlayer.setVideoScalingMode_added(int)" class="hiddenlink" target="rightframe"><b>setVideoScalingMode</b>
 (<code>int</code>)</A></nobr><br>
+<!-- Method setViewPadding -->
+<nobr><A HREF="android.widget.RemoteViews.html#android.widget.RemoteViews.setViewPadding_added(int, int, int, int, int)" class="hiddenlink" target="rightframe"><b>setViewPadding</b>
+(<code>int, int, int, int, int</code>)</A></nobr><br>
+<!-- Method setVisibilityListener -->
+<nobr><A HREF="android.view.ActionProvider.html#android.view.ActionProvider.setVisibilityListener_added(android.view.ActionProvider.VisibilityListener)" class="hiddenlink" target="rightframe"><b>setVisibilityListener</b>
+(<code>VisibilityListener</code>)</A></nobr><br>
 <!-- Method setVisibleToUser -->
 <nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.setVisibleToUser_added(boolean)" class="hiddenlink" target="rightframe"><b>setVisibleToUser</b>
 (<code>boolean</code>)</A></nobr><br>
diff --git a/docs/html/sdk/api_diff/16/changes/android.Manifest.permission.html b/docs/html/sdk/api_diff/16/changes/android.Manifest.permission.html
index c7988c0..3ec476f 100644
--- a/docs/html/sdk/api_diff/16/changes/android.Manifest.permission.html
+++ b/docs/html/sdk/api_diff/16/changes/android.Manifest.permission.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.R.attr.html b/docs/html/sdk/api_diff/16/changes/android.R.attr.html
index 0d63d90..a4db7cf 100644
--- a/docs/html/sdk/api_diff/16/changes/android.R.attr.html
+++ b/docs/html/sdk/api_diff/16/changes/android.R.attr.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
@@ -119,6 +119,13 @@
 </TR>
 <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
   <TD VALIGN="TOP" WIDTH="25%">
+  <A NAME="android.R.attr.mediaRouteTypes"></A>
+  <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.attr.html#mediaRouteTypes" target="_top"><code>mediaRouteTypes</code></A></nobr>
+  </TD>
+  <TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+  <TD VALIGN="TOP" WIDTH="25%">
   <A NAME="android.R.attr.parentActivityName"></A>
   <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/R.attr.html#parentActivityName" target="_top"><code>parentActivityName</code></A></nobr>
   </TD>
diff --git a/docs/html/sdk/api_diff/16/changes/android.R.style.html b/docs/html/sdk/api_diff/16/changes/android.R.style.html
index a9827b5..988463c 100644
--- a/docs/html/sdk/api_diff/16/changes/android.R.style.html
+++ b/docs/html/sdk/api_diff/16/changes/android.R.style.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.accessibilityservice.AccessibilityService.html b/docs/html/sdk/api_diff/16/changes/android.accessibilityservice.AccessibilityService.html
index e5da9e6..227ab96 100644
--- a/docs/html/sdk/api_diff/16/changes/android.accessibilityservice.AccessibilityService.html
+++ b/docs/html/sdk/api_diff/16/changes/android.accessibilityservice.AccessibilityService.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.accessibilityservice.AccessibilityServiceInfo.html b/docs/html/sdk/api_diff/16/changes/android.accessibilityservice.AccessibilityServiceInfo.html
index 28ac08b..c5f3e7c 100644
--- a/docs/html/sdk/api_diff/16/changes/android.accessibilityservice.AccessibilityServiceInfo.html
+++ b/docs/html/sdk/api_diff/16/changes/android.accessibilityservice.AccessibilityServiceInfo.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.animation.LayoutTransition.html b/docs/html/sdk/api_diff/16/changes/android.animation.LayoutTransition.html
index d3cc2f7..a170508 100644
--- a/docs/html/sdk/api_diff/16/changes/android.animation.LayoutTransition.html
+++ b/docs/html/sdk/api_diff/16/changes/android.animation.LayoutTransition.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.app.Activity.html b/docs/html/sdk/api_diff/16/changes/android.app.Activity.html
index 7532134..b15de59 100644
--- a/docs/html/sdk/api_diff/16/changes/android.app.Activity.html
+++ b/docs/html/sdk/api_diff/16/changes/android.app.Activity.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.app.ActivityManager.MemoryInfo.html b/docs/html/sdk/api_diff/16/changes/android.app.ActivityManager.MemoryInfo.html
index f30b1da..99c8ca0 100644
--- a/docs/html/sdk/api_diff/16/changes/android.app.ActivityManager.MemoryInfo.html
+++ b/docs/html/sdk/api_diff/16/changes/android.app.ActivityManager.MemoryInfo.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.app.ActivityManager.RunningAppProcessInfo.html b/docs/html/sdk/api_diff/16/changes/android.app.ActivityManager.RunningAppProcessInfo.html
index 0b7ebc7..041094e 100644
--- a/docs/html/sdk/api_diff/16/changes/android.app.ActivityManager.RunningAppProcessInfo.html
+++ b/docs/html/sdk/api_diff/16/changes/android.app.ActivityManager.RunningAppProcessInfo.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.app.ActivityManager.html b/docs/html/sdk/api_diff/16/changes/android.app.ActivityManager.html
index 1c91fc1..309551c 100644
--- a/docs/html/sdk/api_diff/16/changes/android.app.ActivityManager.html
+++ b/docs/html/sdk/api_diff/16/changes/android.app.ActivityManager.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.app.DownloadManager.Request.html b/docs/html/sdk/api_diff/16/changes/android.app.DownloadManager.Request.html
index 0b7d9b7..97f5b10 100644
--- a/docs/html/sdk/api_diff/16/changes/android.app.DownloadManager.Request.html
+++ b/docs/html/sdk/api_diff/16/changes/android.app.DownloadManager.Request.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.app.Fragment.html b/docs/html/sdk/api_diff/16/changes/android.app.Fragment.html
index bde4b96..d60cecb 100644
--- a/docs/html/sdk/api_diff/16/changes/android.app.Fragment.html
+++ b/docs/html/sdk/api_diff/16/changes/android.app.Fragment.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.app.KeyguardManager.html b/docs/html/sdk/api_diff/16/changes/android.app.KeyguardManager.html
index b90590a..dd6dd34 100644
--- a/docs/html/sdk/api_diff/16/changes/android.app.KeyguardManager.html
+++ b/docs/html/sdk/api_diff/16/changes/android.app.KeyguardManager.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.app.Notification.Builder.html b/docs/html/sdk/api_diff/16/changes/android.app.Notification.Builder.html
index 7ca6ba2..85d595a 100644
--- a/docs/html/sdk/api_diff/16/changes/android.app.Notification.Builder.html
+++ b/docs/html/sdk/api_diff/16/changes/android.app.Notification.Builder.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.app.Notification.html b/docs/html/sdk/api_diff/16/changes/android.app.Notification.html
index 1bc971e..842bd39 100644
--- a/docs/html/sdk/api_diff/16/changes/android.app.Notification.html
+++ b/docs/html/sdk/api_diff/16/changes/android.app.Notification.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.app.PendingIntent.html b/docs/html/sdk/api_diff/16/changes/android.app.PendingIntent.html
index be25f30..d262768 100644
--- a/docs/html/sdk/api_diff/16/changes/android.app.PendingIntent.html
+++ b/docs/html/sdk/api_diff/16/changes/android.app.PendingIntent.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.app.SearchManager.html b/docs/html/sdk/api_diff/16/changes/android.app.SearchManager.html
index 1722f6e..285781e 100644
--- a/docs/html/sdk/api_diff/16/changes/android.app.SearchManager.html
+++ b/docs/html/sdk/api_diff/16/changes/android.app.SearchManager.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.app.WallpaperManager.html b/docs/html/sdk/api_diff/16/changes/android.app.WallpaperManager.html
index 59a3cee..1fb21b4 100644
--- a/docs/html/sdk/api_diff/16/changes/android.app.WallpaperManager.html
+++ b/docs/html/sdk/api_diff/16/changes/android.app.WallpaperManager.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.appwidget.AppWidgetHostView.html b/docs/html/sdk/api_diff/16/changes/android.appwidget.AppWidgetHostView.html
index 0dc5304..be9f0c8 100644
--- a/docs/html/sdk/api_diff/16/changes/android.appwidget.AppWidgetHostView.html
+++ b/docs/html/sdk/api_diff/16/changes/android.appwidget.AppWidgetHostView.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.appwidget.AppWidgetManager.html b/docs/html/sdk/api_diff/16/changes/android.appwidget.AppWidgetManager.html
index e467c89..47b3c4a 100644
--- a/docs/html/sdk/api_diff/16/changes/android.appwidget.AppWidgetManager.html
+++ b/docs/html/sdk/api_diff/16/changes/android.appwidget.AppWidgetManager.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.appwidget.AppWidgetProvider.html b/docs/html/sdk/api_diff/16/changes/android.appwidget.AppWidgetProvider.html
index 8aa8b9c..e8f677f 100644
--- a/docs/html/sdk/api_diff/16/changes/android.appwidget.AppWidgetProvider.html
+++ b/docs/html/sdk/api_diff/16/changes/android.appwidget.AppWidgetProvider.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.bluetooth.BluetoothAdapter.html b/docs/html/sdk/api_diff/16/changes/android.bluetooth.BluetoothAdapter.html
index f430f52..cb152f9 100644
--- a/docs/html/sdk/api_diff/16/changes/android.bluetooth.BluetoothAdapter.html
+++ b/docs/html/sdk/api_diff/16/changes/android.bluetooth.BluetoothAdapter.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.content.AsyncTaskLoader.html b/docs/html/sdk/api_diff/16/changes/android.content.AsyncTaskLoader.html
index 842a312..b153537 100644
--- a/docs/html/sdk/api_diff/16/changes/android.content.AsyncTaskLoader.html
+++ b/docs/html/sdk/api_diff/16/changes/android.content.AsyncTaskLoader.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.content.ClipData.Item.html b/docs/html/sdk/api_diff/16/changes/android.content.ClipData.Item.html
index f506745..38c37b4 100644
--- a/docs/html/sdk/api_diff/16/changes/android.content.ClipData.Item.html
+++ b/docs/html/sdk/api_diff/16/changes/android.content.ClipData.Item.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.content.ClipData.html b/docs/html/sdk/api_diff/16/changes/android.content.ClipData.html
index 59c56d2..2f60ec4 100644
--- a/docs/html/sdk/api_diff/16/changes/android.content.ClipData.html
+++ b/docs/html/sdk/api_diff/16/changes/android.content.ClipData.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.content.ClipDescription.html b/docs/html/sdk/api_diff/16/changes/android.content.ClipDescription.html
index 528513d..dc32779 100644
--- a/docs/html/sdk/api_diff/16/changes/android.content.ClipDescription.html
+++ b/docs/html/sdk/api_diff/16/changes/android.content.ClipDescription.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.content.ComponentCallbacks2.html b/docs/html/sdk/api_diff/16/changes/android.content.ComponentCallbacks2.html
index d446190..061fa82 100644
--- a/docs/html/sdk/api_diff/16/changes/android.content.ComponentCallbacks2.html
+++ b/docs/html/sdk/api_diff/16/changes/android.content.ComponentCallbacks2.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.content.ContentProvider.html b/docs/html/sdk/api_diff/16/changes/android.content.ContentProvider.html
index 30a4c30..44e061b 100644
--- a/docs/html/sdk/api_diff/16/changes/android.content.ContentProvider.html
+++ b/docs/html/sdk/api_diff/16/changes/android.content.ContentProvider.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.content.ContentProviderClient.html b/docs/html/sdk/api_diff/16/changes/android.content.ContentProviderClient.html
index 48426c90..a70ba55 100644
--- a/docs/html/sdk/api_diff/16/changes/android.content.ContentProviderClient.html
+++ b/docs/html/sdk/api_diff/16/changes/android.content.ContentProviderClient.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.content.ContentResolver.html b/docs/html/sdk/api_diff/16/changes/android.content.ContentResolver.html
index 0d1fb1c..773aa64 100644
--- a/docs/html/sdk/api_diff/16/changes/android.content.ContentResolver.html
+++ b/docs/html/sdk/api_diff/16/changes/android.content.ContentResolver.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.content.Context.html b/docs/html/sdk/api_diff/16/changes/android.content.Context.html
index 0134a11..8a07fda 100644
--- a/docs/html/sdk/api_diff/16/changes/android.content.Context.html
+++ b/docs/html/sdk/api_diff/16/changes/android.content.Context.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.content.ContextWrapper.html b/docs/html/sdk/api_diff/16/changes/android.content.ContextWrapper.html
index aea7ed4..4a856e4 100644
--- a/docs/html/sdk/api_diff/16/changes/android.content.ContextWrapper.html
+++ b/docs/html/sdk/api_diff/16/changes/android.content.ContextWrapper.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.content.Intent.html b/docs/html/sdk/api_diff/16/changes/android.content.Intent.html
index ce2f2e8..05391d4 100644
--- a/docs/html/sdk/api_diff/16/changes/android.content.Intent.html
+++ b/docs/html/sdk/api_diff/16/changes/android.content.Intent.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
@@ -155,13 +155,6 @@
 </TR>
 <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
   <TD VALIGN="TOP" WIDTH="25%">
-  <A NAME="android.content.Intent.FLAG_ACTIVITY_CLOSE_SYSTEM_DIALOGS"></A>
-  <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/content/Intent.html#FLAG_ACTIVITY_CLOSE_SYSTEM_DIALOGS" target="_top"><code>FLAG_ACTIVITY_CLOSE_SYSTEM_DIALOGS</code></A></nobr>
-  </TD>
-  <TD>&nbsp;</TD>
-</TR>
-<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
-  <TD VALIGN="TOP" WIDTH="25%">
   <A NAME="android.content.Intent.FLAG_RECEIVER_FOREGROUND"></A>
   <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/content/Intent.html#FLAG_RECEIVER_FOREGROUND" target="_top"><code>FLAG_RECEIVER_FOREGROUND</code></A></nobr>
   </TD>
diff --git a/docs/html/sdk/api_diff/16/changes/android.content.Loader.html b/docs/html/sdk/api_diff/16/changes/android.content.Loader.html
index 9a16b88..1fdb042 100644
--- a/docs/html/sdk/api_diff/16/changes/android.content.Loader.html
+++ b/docs/html/sdk/api_diff/16/changes/android.content.Loader.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.content.pm.ActivityInfo.html b/docs/html/sdk/api_diff/16/changes/android.content.pm.ActivityInfo.html
index 487a129..a2db676 100644
--- a/docs/html/sdk/api_diff/16/changes/android.content.pm.ActivityInfo.html
+++ b/docs/html/sdk/api_diff/16/changes/android.content.pm.ActivityInfo.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.content.pm.PackageInfo.html b/docs/html/sdk/api_diff/16/changes/android.content.pm.PackageInfo.html
index 8c5ae8d..408e4c2 100644
--- a/docs/html/sdk/api_diff/16/changes/android.content.pm.PackageInfo.html
+++ b/docs/html/sdk/api_diff/16/changes/android.content.pm.PackageInfo.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.content.pm.PackageManager.html b/docs/html/sdk/api_diff/16/changes/android.content.pm.PackageManager.html
index 0231400..65c5f21 100644
--- a/docs/html/sdk/api_diff/16/changes/android.content.pm.PackageManager.html
+++ b/docs/html/sdk/api_diff/16/changes/android.content.pm.PackageManager.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.content.pm.PermissionInfo.html b/docs/html/sdk/api_diff/16/changes/android.content.pm.PermissionInfo.html
index de8898e..6000877 100644
--- a/docs/html/sdk/api_diff/16/changes/android.content.pm.PermissionInfo.html
+++ b/docs/html/sdk/api_diff/16/changes/android.content.pm.PermissionInfo.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.content.pm.ServiceInfo.html b/docs/html/sdk/api_diff/16/changes/android.content.pm.ServiceInfo.html
index 19ff184..07018f0 100644
--- a/docs/html/sdk/api_diff/16/changes/android.content.pm.ServiceInfo.html
+++ b/docs/html/sdk/api_diff/16/changes/android.content.pm.ServiceInfo.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.content.res.Configuration.html b/docs/html/sdk/api_diff/16/changes/android.content.res.Configuration.html
index 635bf0f..00f3f75a 100644
--- a/docs/html/sdk/api_diff/16/changes/android.content.res.Configuration.html
+++ b/docs/html/sdk/api_diff/16/changes/android.content.res.Configuration.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.content.res.Resources.html b/docs/html/sdk/api_diff/16/changes/android.content.res.Resources.html
index 2a82c03..dca61d8 100644
--- a/docs/html/sdk/api_diff/16/changes/android.content.res.Resources.html
+++ b/docs/html/sdk/api_diff/16/changes/android.content.res.Resources.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.database.AbstractCursor.html b/docs/html/sdk/api_diff/16/changes/android.database.AbstractCursor.html
index 8ef30ef..7a42022 100644
--- a/docs/html/sdk/api_diff/16/changes/android.database.AbstractCursor.html
+++ b/docs/html/sdk/api_diff/16/changes/android.database.AbstractCursor.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.database.ContentObservable.html b/docs/html/sdk/api_diff/16/changes/android.database.ContentObservable.html
index 0d53bbf..ec458e4 100644
--- a/docs/html/sdk/api_diff/16/changes/android.database.ContentObservable.html
+++ b/docs/html/sdk/api_diff/16/changes/android.database.ContentObservable.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.database.ContentObserver.html b/docs/html/sdk/api_diff/16/changes/android.database.ContentObserver.html
index 8402333..4f376b4 100644
--- a/docs/html/sdk/api_diff/16/changes/android.database.ContentObserver.html
+++ b/docs/html/sdk/api_diff/16/changes/android.database.ContentObserver.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.database.Cursor.html b/docs/html/sdk/api_diff/16/changes/android.database.Cursor.html
index 0d4873e..024e8d0 100644
--- a/docs/html/sdk/api_diff/16/changes/android.database.Cursor.html
+++ b/docs/html/sdk/api_diff/16/changes/android.database.Cursor.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.database.CursorWindow.html b/docs/html/sdk/api_diff/16/changes/android.database.CursorWindow.html
index 6a31252..c42f140 100644
--- a/docs/html/sdk/api_diff/16/changes/android.database.CursorWindow.html
+++ b/docs/html/sdk/api_diff/16/changes/android.database.CursorWindow.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.database.SQLException.html b/docs/html/sdk/api_diff/16/changes/android.database.SQLException.html
index e075b44..1f6e1c1 100644
--- a/docs/html/sdk/api_diff/16/changes/android.database.SQLException.html
+++ b/docs/html/sdk/api_diff/16/changes/android.database.SQLException.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteClosable.html b/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteClosable.html
index adebae2..cb1552d 100644
--- a/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteClosable.html
+++ b/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteClosable.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteDatabase.html b/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteDatabase.html
index d1f82f5..12ad842 100644
--- a/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteDatabase.html
+++ b/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteDatabase.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteException.html b/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteException.html
index 5c71efd..d6e4ebc 100644
--- a/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteException.html
+++ b/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteException.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteOpenHelper.html b/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteOpenHelper.html
index 2ad2b7c..08a21fe 100644
--- a/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteOpenHelper.html
+++ b/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteOpenHelper.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteProgram.html b/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteProgram.html
index 6e65aeb..854d9fc 100644
--- a/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteProgram.html
+++ b/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteProgram.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteQuery.html b/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteQuery.html
index 39174af..eeec07c 100644
--- a/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteQuery.html
+++ b/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteQuery.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteQueryBuilder.html b/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteQueryBuilder.html
index a96030b..9863ac3 100644
--- a/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteQueryBuilder.html
+++ b/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteQueryBuilder.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteStatement.html b/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteStatement.html
index a09a341..3df6e69 100644
--- a/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteStatement.html
+++ b/docs/html/sdk/api_diff/16/changes/android.database.sqlite.SQLiteStatement.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.drm.DrmManagerClient.html b/docs/html/sdk/api_diff/16/changes/android.drm.DrmManagerClient.html
index 266ff09..5eee746 100644
--- a/docs/html/sdk/api_diff/16/changes/android.drm.DrmManagerClient.html
+++ b/docs/html/sdk/api_diff/16/changes/android.drm.DrmManagerClient.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.drm.DrmStore.Action.html b/docs/html/sdk/api_diff/16/changes/android.drm.DrmStore.Action.html
index cf6f50d..2aaf764 100644
--- a/docs/html/sdk/api_diff/16/changes/android.drm.DrmStore.Action.html
+++ b/docs/html/sdk/api_diff/16/changes/android.drm.DrmStore.Action.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.drm.DrmStore.DrmObjectType.html b/docs/html/sdk/api_diff/16/changes/android.drm.DrmStore.DrmObjectType.html
index 87ff8da..122e3ae 100644
--- a/docs/html/sdk/api_diff/16/changes/android.drm.DrmStore.DrmObjectType.html
+++ b/docs/html/sdk/api_diff/16/changes/android.drm.DrmStore.DrmObjectType.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.drm.DrmStore.Playback.html b/docs/html/sdk/api_diff/16/changes/android.drm.DrmStore.Playback.html
index 594c4c0..f2038d9 100644
--- a/docs/html/sdk/api_diff/16/changes/android.drm.DrmStore.Playback.html
+++ b/docs/html/sdk/api_diff/16/changes/android.drm.DrmStore.Playback.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.drm.DrmStore.RightsStatus.html b/docs/html/sdk/api_diff/16/changes/android.drm.DrmStore.RightsStatus.html
index c0525ab..37b04a8 100644
--- a/docs/html/sdk/api_diff/16/changes/android.drm.DrmStore.RightsStatus.html
+++ b/docs/html/sdk/api_diff/16/changes/android.drm.DrmStore.RightsStatus.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.drm.DrmStore.html b/docs/html/sdk/api_diff/16/changes/android.drm.DrmStore.html
index 75686cc..7039935 100644
--- a/docs/html/sdk/api_diff/16/changes/android.drm.DrmStore.html
+++ b/docs/html/sdk/api_diff/16/changes/android.drm.DrmStore.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.drm.DrmSupportInfo.html b/docs/html/sdk/api_diff/16/changes/android.drm.DrmSupportInfo.html
index a62b31d..ab22f87 100644
--- a/docs/html/sdk/api_diff/16/changes/android.drm.DrmSupportInfo.html
+++ b/docs/html/sdk/api_diff/16/changes/android.drm.DrmSupportInfo.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.graphics.AvoidXfermode.html b/docs/html/sdk/api_diff/16/changes/android.graphics.AvoidXfermode.html
index b6c4f59..e9d0ebe 100644
--- a/docs/html/sdk/api_diff/16/changes/android.graphics.AvoidXfermode.html
+++ b/docs/html/sdk/api_diff/16/changes/android.graphics.AvoidXfermode.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.graphics.Camera.html b/docs/html/sdk/api_diff/16/changes/android.graphics.Camera.html
index 27b6d32..f75d71b 100644
--- a/docs/html/sdk/api_diff/16/changes/android.graphics.Camera.html
+++ b/docs/html/sdk/api_diff/16/changes/android.graphics.Camera.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.graphics.Canvas.html b/docs/html/sdk/api_diff/16/changes/android.graphics.Canvas.html
index d94562a..f025bc0 100644
--- a/docs/html/sdk/api_diff/16/changes/android.graphics.Canvas.html
+++ b/docs/html/sdk/api_diff/16/changes/android.graphics.Canvas.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.graphics.Paint.html b/docs/html/sdk/api_diff/16/changes/android.graphics.Paint.html
index f5d5f79..bad0f84 100644
--- a/docs/html/sdk/api_diff/16/changes/android.graphics.Paint.html
+++ b/docs/html/sdk/api_diff/16/changes/android.graphics.Paint.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.graphics.PixelFormat.html b/docs/html/sdk/api_diff/16/changes/android.graphics.PixelFormat.html
index d6f4453..ea2342b 100644
--- a/docs/html/sdk/api_diff/16/changes/android.graphics.PixelFormat.html
+++ b/docs/html/sdk/api_diff/16/changes/android.graphics.PixelFormat.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.graphics.PixelXorXfermode.html b/docs/html/sdk/api_diff/16/changes/android.graphics.PixelXorXfermode.html
index c56d90e..147d373 100644
--- a/docs/html/sdk/api_diff/16/changes/android.graphics.PixelXorXfermode.html
+++ b/docs/html/sdk/api_diff/16/changes/android.graphics.PixelXorXfermode.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.graphics.SurfaceTexture.html b/docs/html/sdk/api_diff/16/changes/android.graphics.SurfaceTexture.html
index 66749dee..ecd2e9f 100644
--- a/docs/html/sdk/api_diff/16/changes/android.graphics.SurfaceTexture.html
+++ b/docs/html/sdk/api_diff/16/changes/android.graphics.SurfaceTexture.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.graphics.drawable.GradientDrawable.html b/docs/html/sdk/api_diff/16/changes/android.graphics.drawable.GradientDrawable.html
index 4e0a4ba..387d2d9 100644
--- a/docs/html/sdk/api_diff/16/changes/android.graphics.drawable.GradientDrawable.html
+++ b/docs/html/sdk/api_diff/16/changes/android.graphics.drawable.GradientDrawable.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.hardware.Camera.html b/docs/html/sdk/api_diff/16/changes/android.hardware.Camera.html
index 9e62312..5329266 100644
--- a/docs/html/sdk/api_diff/16/changes/android.hardware.Camera.html
+++ b/docs/html/sdk/api_diff/16/changes/android.hardware.Camera.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.hardware.SensorManager.html b/docs/html/sdk/api_diff/16/changes/android.hardware.SensorManager.html
index c5733325..6b8316c 100644
--- a/docs/html/sdk/api_diff/16/changes/android.hardware.SensorManager.html
+++ b/docs/html/sdk/api_diff/16/changes/android.hardware.SensorManager.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.media.AudioManager.html b/docs/html/sdk/api_diff/16/changes/android.media.AudioManager.html
index 7a8f61f..4ad8ede 100644
--- a/docs/html/sdk/api_diff/16/changes/android.media.AudioManager.html
+++ b/docs/html/sdk/api_diff/16/changes/android.media.AudioManager.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.media.AudioRecord.html b/docs/html/sdk/api_diff/16/changes/android.media.AudioRecord.html
index 567ae50..00502f1 100644
--- a/docs/html/sdk/api_diff/16/changes/android.media.AudioRecord.html
+++ b/docs/html/sdk/api_diff/16/changes/android.media.AudioRecord.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.media.MediaPlayer.html b/docs/html/sdk/api_diff/16/changes/android.media.MediaPlayer.html
index a5ceaad..602686e 100644
--- a/docs/html/sdk/api_diff/16/changes/android.media.MediaPlayer.html
+++ b/docs/html/sdk/api_diff/16/changes/android.media.MediaPlayer.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.media.MediaRecorder.AudioEncoder.html b/docs/html/sdk/api_diff/16/changes/android.media.MediaRecorder.AudioEncoder.html
index 01b0dfb..4672d3a 100644
--- a/docs/html/sdk/api_diff/16/changes/android.media.MediaRecorder.AudioEncoder.html
+++ b/docs/html/sdk/api_diff/16/changes/android.media.MediaRecorder.AudioEncoder.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.media.MediaRecorder.OutputFormat.html b/docs/html/sdk/api_diff/16/changes/android.media.MediaRecorder.OutputFormat.html
index 6f529c8..cc155eb 100644
--- a/docs/html/sdk/api_diff/16/changes/android.media.MediaRecorder.OutputFormat.html
+++ b/docs/html/sdk/api_diff/16/changes/android.media.MediaRecorder.OutputFormat.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.media.MediaRecorder.html b/docs/html/sdk/api_diff/16/changes/android.media.MediaRecorder.html
index 41fa517..ab168ed 100644
--- a/docs/html/sdk/api_diff/16/changes/android.media.MediaRecorder.html
+++ b/docs/html/sdk/api_diff/16/changes/android.media.MediaRecorder.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.media.ToneGenerator.html b/docs/html/sdk/api_diff/16/changes/android.media.ToneGenerator.html
index 4b67fb3..db2c2436 100644
--- a/docs/html/sdk/api_diff/16/changes/android.media.ToneGenerator.html
+++ b/docs/html/sdk/api_diff/16/changes/android.media.ToneGenerator.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.media.audiofx.Visualizer.html b/docs/html/sdk/api_diff/16/changes/android.media.audiofx.Visualizer.html
index ce70faa..2d359ea 100644
--- a/docs/html/sdk/api_diff/16/changes/android.media.audiofx.Visualizer.html
+++ b/docs/html/sdk/api_diff/16/changes/android.media.audiofx.Visualizer.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.net.ConnectivityManager.html b/docs/html/sdk/api_diff/16/changes/android.net.ConnectivityManager.html
index af5f08b..151f58a 100644
--- a/docs/html/sdk/api_diff/16/changes/android.net.ConnectivityManager.html
+++ b/docs/html/sdk/api_diff/16/changes/android.net.ConnectivityManager.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.net.SSLCertificateSocketFactory.html b/docs/html/sdk/api_diff/16/changes/android.net.SSLCertificateSocketFactory.html
index 4f215ac..69cf35d 100644
--- a/docs/html/sdk/api_diff/16/changes/android.net.SSLCertificateSocketFactory.html
+++ b/docs/html/sdk/api_diff/16/changes/android.net.SSLCertificateSocketFactory.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.net.Uri.html b/docs/html/sdk/api_diff/16/changes/android.net.Uri.html
index 0573fe6..c8d747b 100644
--- a/docs/html/sdk/api_diff/16/changes/android.net.Uri.html
+++ b/docs/html/sdk/api_diff/16/changes/android.net.Uri.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.net.wifi.p2p.WifiP2pManager.html b/docs/html/sdk/api_diff/16/changes/android.net.wifi.p2p.WifiP2pManager.html
index 86520bc..1605831 100644
--- a/docs/html/sdk/api_diff/16/changes/android.net.wifi.p2p.WifiP2pManager.html
+++ b/docs/html/sdk/api_diff/16/changes/android.net.wifi.p2p.WifiP2pManager.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.nfc.FormatException.html b/docs/html/sdk/api_diff/16/changes/android.nfc.FormatException.html
index ec65609..2d6b396 100644
--- a/docs/html/sdk/api_diff/16/changes/android.nfc.FormatException.html
+++ b/docs/html/sdk/api_diff/16/changes/android.nfc.FormatException.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.nfc.NdefMessage.html b/docs/html/sdk/api_diff/16/changes/android.nfc.NdefMessage.html
index 4c9d9d6..9a8db58 100644
--- a/docs/html/sdk/api_diff/16/changes/android.nfc.NdefMessage.html
+++ b/docs/html/sdk/api_diff/16/changes/android.nfc.NdefMessage.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.nfc.NdefRecord.html b/docs/html/sdk/api_diff/16/changes/android.nfc.NdefRecord.html
index a5b159b..0eab428 100644
--- a/docs/html/sdk/api_diff/16/changes/android.nfc.NdefRecord.html
+++ b/docs/html/sdk/api_diff/16/changes/android.nfc.NdefRecord.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.nfc.NfcAdapter.html b/docs/html/sdk/api_diff/16/changes/android.nfc.NfcAdapter.html
index 042a0dd..4d22a1a 100644
--- a/docs/html/sdk/api_diff/16/changes/android.nfc.NfcAdapter.html
+++ b/docs/html/sdk/api_diff/16/changes/android.nfc.NfcAdapter.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.nfc.tech.IsoDep.html b/docs/html/sdk/api_diff/16/changes/android.nfc.tech.IsoDep.html
index 9663328..b6a9cf6 100644
--- a/docs/html/sdk/api_diff/16/changes/android.nfc.tech.IsoDep.html
+++ b/docs/html/sdk/api_diff/16/changes/android.nfc.tech.IsoDep.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.os.Build.VERSION_CODES.html b/docs/html/sdk/api_diff/16/changes/android.os.Build.VERSION_CODES.html
index 516985e..422d0c1 100644
--- a/docs/html/sdk/api_diff/16/changes/android.os.Build.VERSION_CODES.html
+++ b/docs/html/sdk/api_diff/16/changes/android.os.Build.VERSION_CODES.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.os.ParcelFileDescriptor.html b/docs/html/sdk/api_diff/16/changes/android.os.ParcelFileDescriptor.html
index a73cc14..dec148b 100644
--- a/docs/html/sdk/api_diff/16/changes/android.os.ParcelFileDescriptor.html
+++ b/docs/html/sdk/api_diff/16/changes/android.os.ParcelFileDescriptor.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.os.Process.html b/docs/html/sdk/api_diff/16/changes/android.os.Process.html
index 1ed46fd..7a7c4d5 100644
--- a/docs/html/sdk/api_diff/16/changes/android.os.Process.html
+++ b/docs/html/sdk/api_diff/16/changes/android.os.Process.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.os.StrictMode.VmPolicy.Builder.html b/docs/html/sdk/api_diff/16/changes/android.os.StrictMode.VmPolicy.Builder.html
index 04305f8..c5c332d 100644
--- a/docs/html/sdk/api_diff/16/changes/android.os.StrictMode.VmPolicy.Builder.html
+++ b/docs/html/sdk/api_diff/16/changes/android.os.StrictMode.VmPolicy.Builder.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.os.TokenWatcher.html b/docs/html/sdk/api_diff/16/changes/android.os.TokenWatcher.html
index 13ceb9f..084af83 100644
--- a/docs/html/sdk/api_diff/16/changes/android.os.TokenWatcher.html
+++ b/docs/html/sdk/api_diff/16/changes/android.os.TokenWatcher.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.os.Vibrator.html b/docs/html/sdk/api_diff/16/changes/android.os.Vibrator.html
index 9946d85..6b20dac 100644
--- a/docs/html/sdk/api_diff/16/changes/android.os.Vibrator.html
+++ b/docs/html/sdk/api_diff/16/changes/android.os.Vibrator.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.provider.CalendarContract.AttendeesColumns.html b/docs/html/sdk/api_diff/16/changes/android.provider.CalendarContract.AttendeesColumns.html
index e076397..f1a9577 100644
--- a/docs/html/sdk/api_diff/16/changes/android.provider.CalendarContract.AttendeesColumns.html
+++ b/docs/html/sdk/api_diff/16/changes/android.provider.CalendarContract.AttendeesColumns.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.provider.CalendarContract.EventsColumns.html b/docs/html/sdk/api_diff/16/changes/android.provider.CalendarContract.EventsColumns.html
index dbb369a..868f1de 100644
--- a/docs/html/sdk/api_diff/16/changes/android.provider.CalendarContract.EventsColumns.html
+++ b/docs/html/sdk/api_diff/16/changes/android.provider.CalendarContract.EventsColumns.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.provider.CalendarContract.RemindersColumns.html b/docs/html/sdk/api_diff/16/changes/android.provider.CalendarContract.RemindersColumns.html
index e55e138..1d9e485 100644
--- a/docs/html/sdk/api_diff/16/changes/android.provider.CalendarContract.RemindersColumns.html
+++ b/docs/html/sdk/api_diff/16/changes/android.provider.CalendarContract.RemindersColumns.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.provider.CalendarContract.html b/docs/html/sdk/api_diff/16/changes/android.provider.CalendarContract.html
index 07098f1..172b1ed 100644
--- a/docs/html/sdk/api_diff/16/changes/android.provider.CalendarContract.html
+++ b/docs/html/sdk/api_diff/16/changes/android.provider.CalendarContract.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.provider.ContactsContract.CommonDataKinds.Phone.html b/docs/html/sdk/api_diff/16/changes/android.provider.ContactsContract.CommonDataKinds.Phone.html
index 477a51c..21d29b8 100644
--- a/docs/html/sdk/api_diff/16/changes/android.provider.ContactsContract.CommonDataKinds.Phone.html
+++ b/docs/html/sdk/api_diff/16/changes/android.provider.ContactsContract.CommonDataKinds.Phone.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.provider.ContactsContract.Contacts.html b/docs/html/sdk/api_diff/16/changes/android.provider.ContactsContract.Contacts.html
index 6d9df3f..a0f3ad6 100644
--- a/docs/html/sdk/api_diff/16/changes/android.provider.ContactsContract.Contacts.html
+++ b/docs/html/sdk/api_diff/16/changes/android.provider.ContactsContract.Contacts.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.provider.ContactsContract.DataUsageFeedback.html b/docs/html/sdk/api_diff/16/changes/android.provider.ContactsContract.DataUsageFeedback.html
index 0b4380c..e27e55c 100644
--- a/docs/html/sdk/api_diff/16/changes/android.provider.ContactsContract.DataUsageFeedback.html
+++ b/docs/html/sdk/api_diff/16/changes/android.provider.ContactsContract.DataUsageFeedback.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.provider.ContactsContract.PhoneLookupColumns.html b/docs/html/sdk/api_diff/16/changes/android.provider.ContactsContract.PhoneLookupColumns.html
index 6ffe8ac..086f29a 100644
--- a/docs/html/sdk/api_diff/16/changes/android.provider.ContactsContract.PhoneLookupColumns.html
+++ b/docs/html/sdk/api_diff/16/changes/android.provider.ContactsContract.PhoneLookupColumns.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.provider.MediaStore.MediaColumns.html b/docs/html/sdk/api_diff/16/changes/android.provider.MediaStore.MediaColumns.html
index 3f34460..1e9b8dd 100644
--- a/docs/html/sdk/api_diff/16/changes/android.provider.MediaStore.MediaColumns.html
+++ b/docs/html/sdk/api_diff/16/changes/android.provider.MediaStore.MediaColumns.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.provider.Settings.Secure.html b/docs/html/sdk/api_diff/16/changes/android.provider.Settings.Secure.html
index 99884f4..85b97e3 100644
--- a/docs/html/sdk/api_diff/16/changes/android.provider.Settings.Secure.html
+++ b/docs/html/sdk/api_diff/16/changes/android.provider.Settings.Secure.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.provider.Settings.System.html b/docs/html/sdk/api_diff/16/changes/android.provider.Settings.System.html
index 74c8eb3..b13218a 100644
--- a/docs/html/sdk/api_diff/16/changes/android.provider.Settings.System.html
+++ b/docs/html/sdk/api_diff/16/changes/android.provider.Settings.System.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.provider.Settings.html b/docs/html/sdk/api_diff/16/changes/android.provider.Settings.html
index 39342f1..fdd2e82 100644
--- a/docs/html/sdk/api_diff/16/changes/android.provider.Settings.html
+++ b/docs/html/sdk/api_diff/16/changes/android.provider.Settings.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.provider.UserDictionary.Words.html b/docs/html/sdk/api_diff/16/changes/android.provider.UserDictionary.Words.html
index 2cc1bc0..048f9e7 100644
--- a/docs/html/sdk/api_diff/16/changes/android.provider.UserDictionary.Words.html
+++ b/docs/html/sdk/api_diff/16/changes/android.provider.UserDictionary.Words.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.Allocation.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.Allocation.html
index 66c3db9..a63823f 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.Allocation.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.Allocation.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.Element.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.Element.html
index 41fea88..c2e53fe 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.Element.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.Element.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.FileA3D.EntryType.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.FileA3D.EntryType.html
index 17292dc..ef49db3 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.FileA3D.EntryType.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.FileA3D.EntryType.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.FileA3D.IndexEntry.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.FileA3D.IndexEntry.html
index 121c272..5d5f307 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.FileA3D.IndexEntry.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.FileA3D.IndexEntry.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.FileA3D.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.FileA3D.html
index 6736ffd..3f65c2c 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.FileA3D.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.FileA3D.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.Font.Style.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.Font.Style.html
index 3f00425..85bca91 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.Font.Style.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.Font.Style.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.Font.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.Font.html
index b1c1ae6..b9efb85 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.Font.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.Font.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.Mesh.AllocationBuilder.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.Mesh.AllocationBuilder.html
index f8ad159..faf6237 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.Mesh.AllocationBuilder.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.Mesh.AllocationBuilder.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.Mesh.Builder.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.Mesh.Builder.html
index 882a7b0..1ed9a63 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.Mesh.Builder.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.Mesh.Builder.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.Mesh.Primitive.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.Mesh.Primitive.html
index 73d31db..dc94449 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.Mesh.Primitive.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.Mesh.Primitive.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.Mesh.TriangleMeshBuilder.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.Mesh.TriangleMeshBuilder.html
index 90a7dce..30772e0 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.Mesh.TriangleMeshBuilder.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.Mesh.TriangleMeshBuilder.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.Mesh.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.Mesh.html
index 2030ed0..a7d6b19 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.Mesh.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.Mesh.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.Program.BaseProgramBuilder.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.Program.BaseProgramBuilder.html
index 4f0b6e1..f2ece67 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.Program.BaseProgramBuilder.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.Program.BaseProgramBuilder.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.Program.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.Program.html
index 9b0718e..cea3097 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.Program.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.Program.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramFragment.Builder.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramFragment.Builder.html
index bf9c417..b6c50d3 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramFragment.Builder.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramFragment.Builder.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramFragment.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramFragment.html
index 53dd0f8..82f0614 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramFragment.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramFragment.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramFragmentFixedFunction.Builder.EnvMode.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramFragmentFixedFunction.Builder.EnvMode.html
index 8289e9c5..42e4c41 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramFragmentFixedFunction.Builder.EnvMode.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramFragmentFixedFunction.Builder.EnvMode.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramFragmentFixedFunction.Builder.Format.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramFragmentFixedFunction.Builder.Format.html
index 4f8be80..6b0d42a 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramFragmentFixedFunction.Builder.Format.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramFragmentFixedFunction.Builder.Format.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramFragmentFixedFunction.Builder.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramFragmentFixedFunction.Builder.html
index bc9d8e9..866e75e 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramFragmentFixedFunction.Builder.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramFragmentFixedFunction.Builder.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramFragmentFixedFunction.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramFragmentFixedFunction.html
index 0073206..043927d 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramFragmentFixedFunction.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramFragmentFixedFunction.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramRaster.Builder.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramRaster.Builder.html
index 4dbb440..7a36129 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramRaster.Builder.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramRaster.Builder.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramRaster.CullMode.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramRaster.CullMode.html
index 3175579..135a7bf 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramRaster.CullMode.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramRaster.CullMode.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramRaster.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramRaster.html
index cccfc7e..60042f4 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramRaster.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramRaster.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramStore.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramStore.html
index 16b2ef3..4e96e4f 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramStore.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramStore.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramVertex.Builder.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramVertex.Builder.html
index 111140d..adfdd1c 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramVertex.Builder.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramVertex.Builder.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramVertex.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramVertex.html
index e72f32c..278079f 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramVertex.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramVertex.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramVertexFixedFunction.Builder.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramVertexFixedFunction.Builder.html
index edbc528..52bbdf9 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramVertexFixedFunction.Builder.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramVertexFixedFunction.Builder.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramVertexFixedFunction.Constants.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramVertexFixedFunction.Constants.html
index 3a9b272..274ae05 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramVertexFixedFunction.Constants.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramVertexFixedFunction.Constants.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramVertexFixedFunction.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramVertexFixedFunction.html
index 5dd5e7a..6b1894f 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramVertexFixedFunction.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.ProgramVertexFixedFunction.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.RSSurfaceView.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.RSSurfaceView.html
index 55c3b49..7c9d264b 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.RSSurfaceView.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.RSSurfaceView.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.RSTextureView.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.RSTextureView.html
index 3fc1497..b0b87ae 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.RSTextureView.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.RSTextureView.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.RenderScriptGL.SurfaceConfig.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.RenderScriptGL.SurfaceConfig.html
index da5f05f..e07b1ac 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.RenderScriptGL.SurfaceConfig.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.RenderScriptGL.SurfaceConfig.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.RenderScriptGL.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.RenderScriptGL.html
index a0ad13e..6cf0f6c 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.RenderScriptGL.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.RenderScriptGL.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.Sampler.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.Sampler.html
index 8421eb8..1345dae5 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.Sampler.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.Sampler.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.renderscript.Script.html b/docs/html/sdk/api_diff/16/changes/android.renderscript.Script.html
index bf71177..8fc9924 100644
--- a/docs/html/sdk/api_diff/16/changes/android.renderscript.Script.html
+++ b/docs/html/sdk/api_diff/16/changes/android.renderscript.Script.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.security.KeyChain.html b/docs/html/sdk/api_diff/16/changes/android.security.KeyChain.html
index 7514250..92e57b5 100644
--- a/docs/html/sdk/api_diff/16/changes/android.security.KeyChain.html
+++ b/docs/html/sdk/api_diff/16/changes/android.security.KeyChain.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.service.textservice.SpellCheckerService.Session.html b/docs/html/sdk/api_diff/16/changes/android.service.textservice.SpellCheckerService.Session.html
index 6194cf6..c83d21f 100644
--- a/docs/html/sdk/api_diff/16/changes/android.service.textservice.SpellCheckerService.Session.html
+++ b/docs/html/sdk/api_diff/16/changes/android.service.textservice.SpellCheckerService.Session.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.speech.RecognizerIntent.html b/docs/html/sdk/api_diff/16/changes/android.speech.RecognizerIntent.html
index 59ee347..d869c23 100644
--- a/docs/html/sdk/api_diff/16/changes/android.speech.RecognizerIntent.html
+++ b/docs/html/sdk/api_diff/16/changes/android.speech.RecognizerIntent.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.test.AssertionFailedError.html b/docs/html/sdk/api_diff/16/changes/android.test.AssertionFailedError.html
index 23d47dd..feba168 100644
--- a/docs/html/sdk/api_diff/16/changes/android.test.AssertionFailedError.html
+++ b/docs/html/sdk/api_diff/16/changes/android.test.AssertionFailedError.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.test.ComparisonFailure.html b/docs/html/sdk/api_diff/16/changes/android.test.ComparisonFailure.html
index 1c9d008..4f9406d 100644
--- a/docs/html/sdk/api_diff/16/changes/android.test.ComparisonFailure.html
+++ b/docs/html/sdk/api_diff/16/changes/android.test.ComparisonFailure.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.test.InstrumentationTestSuite.html b/docs/html/sdk/api_diff/16/changes/android.test.InstrumentationTestSuite.html
index 41d0de8..41f0bc0 100644
--- a/docs/html/sdk/api_diff/16/changes/android.test.InstrumentationTestSuite.html
+++ b/docs/html/sdk/api_diff/16/changes/android.test.InstrumentationTestSuite.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.test.mock.MockContext.html b/docs/html/sdk/api_diff/16/changes/android.test.mock.MockContext.html
index 878bc32..a44c902 100644
--- a/docs/html/sdk/api_diff/16/changes/android.test.mock.MockContext.html
+++ b/docs/html/sdk/api_diff/16/changes/android.test.mock.MockContext.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.text.Html.html b/docs/html/sdk/api_diff/16/changes/android.text.Html.html
index 1d2c46d..a0361cd 100644
--- a/docs/html/sdk/api_diff/16/changes/android.text.Html.html
+++ b/docs/html/sdk/api_diff/16/changes/android.text.Html.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.util.DisplayMetrics.html b/docs/html/sdk/api_diff/16/changes/android.util.DisplayMetrics.html
index c563255..2f93ccf 100644
--- a/docs/html/sdk/api_diff/16/changes/android.util.DisplayMetrics.html
+++ b/docs/html/sdk/api_diff/16/changes/android.util.DisplayMetrics.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.view.ActionMode.html b/docs/html/sdk/api_diff/16/changes/android.view.ActionMode.html
index 4d7dba4..0633827 100644
--- a/docs/html/sdk/api_diff/16/changes/android.view.ActionMode.html
+++ b/docs/html/sdk/api_diff/16/changes/android.view.ActionMode.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.view.ActionProvider.html b/docs/html/sdk/api_diff/16/changes/android.view.ActionProvider.html
index 295e6f1..9c65f8f 100644
--- a/docs/html/sdk/api_diff/16/changes/android.view.ActionProvider.html
+++ b/docs/html/sdk/api_diff/16/changes/android.view.ActionProvider.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
@@ -83,11 +83,39 @@
 </TH>
 <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
   <TD VALIGN="TOP" WIDTH="25%">
+  <A NAME="android.view.ActionProvider.isVisible_added()"></A>
+  <nobr><code>boolean</code>&nbsp;<A HREF="../../../../reference/android/view/ActionProvider.html#isVisible()" target="_top"><code>isVisible</code></A>()</nobr>
+  </TD>
+  <TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+  <TD VALIGN="TOP" WIDTH="25%">
   <A NAME="android.view.ActionProvider.onCreateActionView_added(android.view.MenuItem)"></A>
   <nobr><code>View</code>&nbsp;<A HREF="../../../../reference/android/view/ActionProvider.html#onCreateActionView(android.view.MenuItem)" target="_top"><code>onCreateActionView</code></A>(<code>MenuItem</code>)</nobr>
   </TD>
   <TD>&nbsp;</TD>
 </TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+  <TD VALIGN="TOP" WIDTH="25%">
+  <A NAME="android.view.ActionProvider.overridesItemVisibility_added()"></A>
+  <nobr><code>boolean</code>&nbsp;<A HREF="../../../../reference/android/view/ActionProvider.html#overridesItemVisibility()" target="_top"><code>overridesItemVisibility</code></A>()</nobr>
+  </TD>
+  <TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+  <TD VALIGN="TOP" WIDTH="25%">
+  <A NAME="android.view.ActionProvider.refreshVisibility_added()"></A>
+  <nobr><code>void</code>&nbsp;<A HREF="../../../../reference/android/view/ActionProvider.html#refreshVisibility()" target="_top"><code>refreshVisibility</code></A>()</nobr>
+  </TD>
+  <TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+  <TD VALIGN="TOP" WIDTH="25%">
+  <A NAME="android.view.ActionProvider.setVisibilityListener_added(android.view.ActionProvider.VisibilityListener)"></A>
+  <nobr><code>void</code>&nbsp;<A HREF="../../../../reference/android/view/ActionProvider.html#setVisibilityListener(android.view.ActionProvider.VisibilityListener)" target="_top"><code>setVisibilityListener</code></A>(<code>VisibilityListener</code>)</nobr>
+  </TD>
+  <TD>&nbsp;</TD>
+</TR>
 </TABLE>
 &nbsp;
 <p>
diff --git a/docs/html/sdk/api_diff/16/changes/android.view.Display.html b/docs/html/sdk/api_diff/16/changes/android.view.Display.html
index e1db224..c519edf 100644
--- a/docs/html/sdk/api_diff/16/changes/android.view.Display.html
+++ b/docs/html/sdk/api_diff/16/changes/android.view.Display.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.view.Gravity.html b/docs/html/sdk/api_diff/16/changes/android.view.Gravity.html
index c8dfc0b..7e6daea 100644
--- a/docs/html/sdk/api_diff/16/changes/android.view.Gravity.html
+++ b/docs/html/sdk/api_diff/16/changes/android.view.Gravity.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.view.InputDevice.html b/docs/html/sdk/api_diff/16/changes/android.view.InputDevice.html
index e787591..9515708 100644
--- a/docs/html/sdk/api_diff/16/changes/android.view.InputDevice.html
+++ b/docs/html/sdk/api_diff/16/changes/android.view.InputDevice.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.view.InputEvent.html b/docs/html/sdk/api_diff/16/changes/android.view.InputEvent.html
index c41ca44..e3b872c 100644
--- a/docs/html/sdk/api_diff/16/changes/android.view.InputEvent.html
+++ b/docs/html/sdk/api_diff/16/changes/android.view.InputEvent.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.view.KeyCharacterMap.html b/docs/html/sdk/api_diff/16/changes/android.view.KeyCharacterMap.html
index 4e414f3..e18e9b5 100644
--- a/docs/html/sdk/api_diff/16/changes/android.view.KeyCharacterMap.html
+++ b/docs/html/sdk/api_diff/16/changes/android.view.KeyCharacterMap.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.view.KeyEvent.html b/docs/html/sdk/api_diff/16/changes/android.view.KeyEvent.html
index 9c35b87..bedd73f 100644
--- a/docs/html/sdk/api_diff/16/changes/android.view.KeyEvent.html
+++ b/docs/html/sdk/api_diff/16/changes/android.view.KeyEvent.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.view.TextureView.html b/docs/html/sdk/api_diff/16/changes/android.view.TextureView.html
index 5e835f3..e8fd732 100644
--- a/docs/html/sdk/api_diff/16/changes/android.view.TextureView.html
+++ b/docs/html/sdk/api_diff/16/changes/android.view.TextureView.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.view.View.AccessibilityDelegate.html b/docs/html/sdk/api_diff/16/changes/android.view.View.AccessibilityDelegate.html
index 04a4157..6350eee 100644
--- a/docs/html/sdk/api_diff/16/changes/android.view.View.AccessibilityDelegate.html
+++ b/docs/html/sdk/api_diff/16/changes/android.view.View.AccessibilityDelegate.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.view.View.html b/docs/html/sdk/api_diff/16/changes/android.view.View.html
index 8b8bc43..015f638 100644
--- a/docs/html/sdk/api_diff/16/changes/android.view.View.html
+++ b/docs/html/sdk/api_diff/16/changes/android.view.View.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.view.ViewDebug.HierarchyTraceType.html b/docs/html/sdk/api_diff/16/changes/android.view.ViewDebug.HierarchyTraceType.html
index 9098260..e908fb5 100644
--- a/docs/html/sdk/api_diff/16/changes/android.view.ViewDebug.HierarchyTraceType.html
+++ b/docs/html/sdk/api_diff/16/changes/android.view.ViewDebug.HierarchyTraceType.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.view.ViewDebug.RecyclerTraceType.html b/docs/html/sdk/api_diff/16/changes/android.view.ViewDebug.RecyclerTraceType.html
index f25f40f..6fa0d11 100644
--- a/docs/html/sdk/api_diff/16/changes/android.view.ViewDebug.RecyclerTraceType.html
+++ b/docs/html/sdk/api_diff/16/changes/android.view.ViewDebug.RecyclerTraceType.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.view.ViewDebug.html b/docs/html/sdk/api_diff/16/changes/android.view.ViewDebug.html
index 6405673..9bc7af1 100644
--- a/docs/html/sdk/api_diff/16/changes/android.view.ViewDebug.html
+++ b/docs/html/sdk/api_diff/16/changes/android.view.ViewDebug.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.view.ViewGroup.html b/docs/html/sdk/api_diff/16/changes/android.view.ViewGroup.html
index adf11b4..e30c4b3 100644
--- a/docs/html/sdk/api_diff/16/changes/android.view.ViewGroup.html
+++ b/docs/html/sdk/api_diff/16/changes/android.view.ViewGroup.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.view.ViewParent.html b/docs/html/sdk/api_diff/16/changes/android.view.ViewParent.html
index a6b7f00..fc32c23 100644
--- a/docs/html/sdk/api_diff/16/changes/android.view.ViewParent.html
+++ b/docs/html/sdk/api_diff/16/changes/android.view.ViewParent.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.view.ViewPropertyAnimator.html b/docs/html/sdk/api_diff/16/changes/android.view.ViewPropertyAnimator.html
index eb6f3b4..49be2b7 100644
--- a/docs/html/sdk/api_diff/16/changes/android.view.ViewPropertyAnimator.html
+++ b/docs/html/sdk/api_diff/16/changes/android.view.ViewPropertyAnimator.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.view.ViewStub.html b/docs/html/sdk/api_diff/16/changes/android.view.ViewStub.html
index cc5a4c6..ff1b0fe 100644
--- a/docs/html/sdk/api_diff/16/changes/android.view.ViewStub.html
+++ b/docs/html/sdk/api_diff/16/changes/android.view.ViewStub.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.view.ViewTreeObserver.html b/docs/html/sdk/api_diff/16/changes/android.view.ViewTreeObserver.html
index e679ce2..8ba4bab 100644
--- a/docs/html/sdk/api_diff/16/changes/android.view.ViewTreeObserver.html
+++ b/docs/html/sdk/api_diff/16/changes/android.view.ViewTreeObserver.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.view.accessibility.AccessibilityEvent.html b/docs/html/sdk/api_diff/16/changes/android.view.accessibility.AccessibilityEvent.html
index 0a8cfe8..0c51ee4 100644
--- a/docs/html/sdk/api_diff/16/changes/android.view.accessibility.AccessibilityEvent.html
+++ b/docs/html/sdk/api_diff/16/changes/android.view.accessibility.AccessibilityEvent.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.view.accessibility.AccessibilityNodeInfo.html b/docs/html/sdk/api_diff/16/changes/android.view.accessibility.AccessibilityNodeInfo.html
index 7e10499..7d3e447 100644
--- a/docs/html/sdk/api_diff/16/changes/android.view.accessibility.AccessibilityNodeInfo.html
+++ b/docs/html/sdk/api_diff/16/changes/android.view.accessibility.AccessibilityNodeInfo.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.view.accessibility.AccessibilityRecord.html b/docs/html/sdk/api_diff/16/changes/android.view.accessibility.AccessibilityRecord.html
index bf3b7a7..9637ca2 100644
--- a/docs/html/sdk/api_diff/16/changes/android.view.accessibility.AccessibilityRecord.html
+++ b/docs/html/sdk/api_diff/16/changes/android.view.accessibility.AccessibilityRecord.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.view.inputmethod.EditorInfo.html b/docs/html/sdk/api_diff/16/changes/android.view.inputmethod.EditorInfo.html
index 8e15797..bd05573 100644
--- a/docs/html/sdk/api_diff/16/changes/android.view.inputmethod.EditorInfo.html
+++ b/docs/html/sdk/api_diff/16/changes/android.view.inputmethod.EditorInfo.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.view.inputmethod.InputMethodManager.html b/docs/html/sdk/api_diff/16/changes/android.view.inputmethod.InputMethodManager.html
index 99da059..c8194cf 100644
--- a/docs/html/sdk/api_diff/16/changes/android.view.inputmethod.InputMethodManager.html
+++ b/docs/html/sdk/api_diff/16/changes/android.view.inputmethod.InputMethodManager.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.view.textservice.SpellCheckerSession.SpellCheckerSessionListener.html b/docs/html/sdk/api_diff/16/changes/android.view.textservice.SpellCheckerSession.SpellCheckerSessionListener.html
index e8b3049..0873414 100644
--- a/docs/html/sdk/api_diff/16/changes/android.view.textservice.SpellCheckerSession.SpellCheckerSessionListener.html
+++ b/docs/html/sdk/api_diff/16/changes/android.view.textservice.SpellCheckerSession.SpellCheckerSessionListener.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.view.textservice.SpellCheckerSession.html b/docs/html/sdk/api_diff/16/changes/android.view.textservice.SpellCheckerSession.html
index 2828329..32fc681 100644
--- a/docs/html/sdk/api_diff/16/changes/android.view.textservice.SpellCheckerSession.html
+++ b/docs/html/sdk/api_diff/16/changes/android.view.textservice.SpellCheckerSession.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.view.textservice.SpellCheckerSubtype.html b/docs/html/sdk/api_diff/16/changes/android.view.textservice.SpellCheckerSubtype.html
index 1bc66c2..068b5b8 100644
--- a/docs/html/sdk/api_diff/16/changes/android.view.textservice.SpellCheckerSubtype.html
+++ b/docs/html/sdk/api_diff/16/changes/android.view.textservice.SpellCheckerSubtype.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.webkit.CookieManager.html b/docs/html/sdk/api_diff/16/changes/android.webkit.CookieManager.html
index 20b9bb3..b740796 100644
--- a/docs/html/sdk/api_diff/16/changes/android.webkit.CookieManager.html
+++ b/docs/html/sdk/api_diff/16/changes/android.webkit.CookieManager.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.webkit.GeolocationPermissions.html b/docs/html/sdk/api_diff/16/changes/android.webkit.GeolocationPermissions.html
index 7859c05..3ffe9a7 100644
--- a/docs/html/sdk/api_diff/16/changes/android.webkit.GeolocationPermissions.html
+++ b/docs/html/sdk/api_diff/16/changes/android.webkit.GeolocationPermissions.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.webkit.JsResult.html b/docs/html/sdk/api_diff/16/changes/android.webkit.JsResult.html
index 0023588..8f2577f 100644
--- a/docs/html/sdk/api_diff/16/changes/android.webkit.JsResult.html
+++ b/docs/html/sdk/api_diff/16/changes/android.webkit.JsResult.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.webkit.WebIconDatabase.html b/docs/html/sdk/api_diff/16/changes/android.webkit.WebIconDatabase.html
index 4483b47..26024f2 100644
--- a/docs/html/sdk/api_diff/16/changes/android.webkit.WebIconDatabase.html
+++ b/docs/html/sdk/api_diff/16/changes/android.webkit.WebIconDatabase.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.webkit.WebSettings.html b/docs/html/sdk/api_diff/16/changes/android.webkit.WebSettings.html
index 566c7fc..6337887 100644
--- a/docs/html/sdk/api_diff/16/changes/android.webkit.WebSettings.html
+++ b/docs/html/sdk/api_diff/16/changes/android.webkit.WebSettings.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.webkit.WebStorage.html b/docs/html/sdk/api_diff/16/changes/android.webkit.WebStorage.html
index 2a62fec..b900c0a 100644
--- a/docs/html/sdk/api_diff/16/changes/android.webkit.WebStorage.html
+++ b/docs/html/sdk/api_diff/16/changes/android.webkit.WebStorage.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.webkit.WebView.HitTestResult.html b/docs/html/sdk/api_diff/16/changes/android.webkit.WebView.HitTestResult.html
index 31ba76f..f3a25c0 100644
--- a/docs/html/sdk/api_diff/16/changes/android.webkit.WebView.HitTestResult.html
+++ b/docs/html/sdk/api_diff/16/changes/android.webkit.WebView.HitTestResult.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.webkit.WebView.html b/docs/html/sdk/api_diff/16/changes/android.webkit.WebView.html
index 0e4a3a0..e009999 100644
--- a/docs/html/sdk/api_diff/16/changes/android.webkit.WebView.html
+++ b/docs/html/sdk/api_diff/16/changes/android.webkit.WebView.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.widget.AbsSeekBar.html b/docs/html/sdk/api_diff/16/changes/android.widget.AbsSeekBar.html
index 84d76c8..e5ca3d5 100644
--- a/docs/html/sdk/api_diff/16/changes/android.widget.AbsSeekBar.html
+++ b/docs/html/sdk/api_diff/16/changes/android.widget.AbsSeekBar.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.widget.AdapterViewAnimator.html b/docs/html/sdk/api_diff/16/changes/android.widget.AdapterViewAnimator.html
index 4dc2df5..1b484be 100644
--- a/docs/html/sdk/api_diff/16/changes/android.widget.AdapterViewAnimator.html
+++ b/docs/html/sdk/api_diff/16/changes/android.widget.AdapterViewAnimator.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.widget.AdapterViewFlipper.html b/docs/html/sdk/api_diff/16/changes/android.widget.AdapterViewFlipper.html
index 5f65166..aa2f295 100644
--- a/docs/html/sdk/api_diff/16/changes/android.widget.AdapterViewFlipper.html
+++ b/docs/html/sdk/api_diff/16/changes/android.widget.AdapterViewFlipper.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.widget.AutoCompleteTextView.html b/docs/html/sdk/api_diff/16/changes/android.widget.AutoCompleteTextView.html
index 8e9bfa7..d32a076 100644
--- a/docs/html/sdk/api_diff/16/changes/android.widget.AutoCompleteTextView.html
+++ b/docs/html/sdk/api_diff/16/changes/android.widget.AutoCompleteTextView.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.widget.CalendarView.html b/docs/html/sdk/api_diff/16/changes/android.widget.CalendarView.html
index 471508c..fd7b0e4 100644
--- a/docs/html/sdk/api_diff/16/changes/android.widget.CalendarView.html
+++ b/docs/html/sdk/api_diff/16/changes/android.widget.CalendarView.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.widget.CheckedTextView.html b/docs/html/sdk/api_diff/16/changes/android.widget.CheckedTextView.html
index 63f1f38..4d257dc 100644
--- a/docs/html/sdk/api_diff/16/changes/android.widget.CheckedTextView.html
+++ b/docs/html/sdk/api_diff/16/changes/android.widget.CheckedTextView.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.widget.FrameLayout.html b/docs/html/sdk/api_diff/16/changes/android.widget.FrameLayout.html
index 285f4c3..2d18399 100644
--- a/docs/html/sdk/api_diff/16/changes/android.widget.FrameLayout.html
+++ b/docs/html/sdk/api_diff/16/changes/android.widget.FrameLayout.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.widget.Gallery.html b/docs/html/sdk/api_diff/16/changes/android.widget.Gallery.html
index 1d524e9..bea43e60 100644
--- a/docs/html/sdk/api_diff/16/changes/android.widget.Gallery.html
+++ b/docs/html/sdk/api_diff/16/changes/android.widget.Gallery.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.widget.GridLayout.html b/docs/html/sdk/api_diff/16/changes/android.widget.GridLayout.html
index 4d08a2d..70600ae 100644
--- a/docs/html/sdk/api_diff/16/changes/android.widget.GridLayout.html
+++ b/docs/html/sdk/api_diff/16/changes/android.widget.GridLayout.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.widget.GridView.html b/docs/html/sdk/api_diff/16/changes/android.widget.GridView.html
index 27af520..31a0a95 100644
--- a/docs/html/sdk/api_diff/16/changes/android.widget.GridView.html
+++ b/docs/html/sdk/api_diff/16/changes/android.widget.GridView.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.widget.ImageView.html b/docs/html/sdk/api_diff/16/changes/android.widget.ImageView.html
index f2928f9..bb505bf 100644
--- a/docs/html/sdk/api_diff/16/changes/android.widget.ImageView.html
+++ b/docs/html/sdk/api_diff/16/changes/android.widget.ImageView.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.widget.LinearLayout.html b/docs/html/sdk/api_diff/16/changes/android.widget.LinearLayout.html
index e0f2670..f7717ec 100644
--- a/docs/html/sdk/api_diff/16/changes/android.widget.LinearLayout.html
+++ b/docs/html/sdk/api_diff/16/changes/android.widget.LinearLayout.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.widget.RelativeLayout.html b/docs/html/sdk/api_diff/16/changes/android.widget.RelativeLayout.html
index 4c62dc1..75ce6e6 100644
--- a/docs/html/sdk/api_diff/16/changes/android.widget.RelativeLayout.html
+++ b/docs/html/sdk/api_diff/16/changes/android.widget.RelativeLayout.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.widget.RemoteViews.html b/docs/html/sdk/api_diff/16/changes/android.widget.RemoteViews.html
index c29df4b..c05ae10 100644
--- a/docs/html/sdk/api_diff/16/changes/android.widget.RemoteViews.html
+++ b/docs/html/sdk/api_diff/16/changes/android.widget.RemoteViews.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
@@ -103,6 +103,27 @@
   </TD>
   <TD>&nbsp;</TD>
 </TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+  <TD VALIGN="TOP" WIDTH="25%">
+  <A NAME="android.widget.RemoteViews.setTextViewCompoundDrawablesRelative_added(int, int, int, int, int)"></A>
+  <nobr><code>void</code>&nbsp;<A HREF="../../../../reference/android/widget/RemoteViews.html#setTextViewCompoundDrawablesRelative(int, int, int, int, int)" target="_top"><code>setTextViewCompoundDrawablesRelative</code></A>(<code>int,</nobr> int<nobr>,</nobr> int<nobr>,</nobr> int<nobr>,</nobr> int<nobr><nobr></code>)</nobr>
+  </TD>
+  <TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+  <TD VALIGN="TOP" WIDTH="25%">
+  <A NAME="android.widget.RemoteViews.setTextViewTextSize_added(int, int, float)"></A>
+  <nobr><code>void</code>&nbsp;<A HREF="../../../../reference/android/widget/RemoteViews.html#setTextViewTextSize(int, int, float)" target="_top"><code>setTextViewTextSize</code></A>(<code>int,</nobr> int<nobr>,</nobr> float<nobr><nobr></code>)</nobr>
+  </TD>
+  <TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+  <TD VALIGN="TOP" WIDTH="25%">
+  <A NAME="android.widget.RemoteViews.setViewPadding_added(int, int, int, int, int)"></A>
+  <nobr><code>void</code>&nbsp;<A HREF="../../../../reference/android/widget/RemoteViews.html#setViewPadding(int, int, int, int, int)" target="_top"><code>setViewPadding</code></A>(<code>int,</nobr> int<nobr>,</nobr> int<nobr>,</nobr> int<nobr>,</nobr> int<nobr><nobr></code>)</nobr>
+  </TD>
+  <TD>&nbsp;</TD>
+</TR>
 </TABLE>
 &nbsp;
 <a NAME="fields"></a>
diff --git a/docs/html/sdk/api_diff/16/changes/android.widget.SearchView.html b/docs/html/sdk/api_diff/16/changes/android.widget.SearchView.html
index 194fa0b..0cd0cfb 100644
--- a/docs/html/sdk/api_diff/16/changes/android.widget.SearchView.html
+++ b/docs/html/sdk/api_diff/16/changes/android.widget.SearchView.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.widget.Spinner.html b/docs/html/sdk/api_diff/16/changes/android.widget.Spinner.html
index 8525939..0d571994 100644
--- a/docs/html/sdk/api_diff/16/changes/android.widget.Spinner.html
+++ b/docs/html/sdk/api_diff/16/changes/android.widget.Spinner.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.widget.Switch.html b/docs/html/sdk/api_diff/16/changes/android.widget.Switch.html
index e8947d6..6fa62d40 100644
--- a/docs/html/sdk/api_diff/16/changes/android.widget.Switch.html
+++ b/docs/html/sdk/api_diff/16/changes/android.widget.Switch.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/android.widget.TextView.html b/docs/html/sdk/api_diff/16/changes/android.widget.TextView.html
index 03dab15..0cb483b 100644
--- a/docs/html/sdk/api_diff/16/changes/android.widget.TextView.html
+++ b/docs/html/sdk/api_diff/16/changes/android.widget.TextView.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/changes-summary.html b/docs/html/sdk/api_diff/16/changes/changes-summary.html
index 3edac63..93c9aaa 100644
--- a/docs/html/sdk/api_diff/16/changes/changes-summary.html
+++ b/docs/html/sdk/api_diff/16/changes/changes-summary.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/classes_index_additions.html b/docs/html/sdk/api_diff/16/changes/classes_index_additions.html
index d88c0a1..4cd366a 100644
--- a/docs/html/sdk/api_diff/16/changes/classes_index_additions.html
+++ b/docs/html/sdk/api_diff/16/changes/classes_index_additions.html
@@ -62,6 +62,7 @@
 <p><div style="line-height:1.5em;color:black">
 <A HREF="pkg_android.view.accessibility.html#AccessibilityNodeProvider" class="hiddenlink" target="rightframe"><b>AccessibilityNodeProvider</b></A><br>
 <A HREF="pkg_android.media.audiofx.html#AcousticEchoCanceler" class="hiddenlink" target="rightframe"><b>AcousticEchoCanceler</b></A><br>
+<A HREF="pkg_android.view.html#ActionProvider.VisibilityListener" class="hiddenlink" target="rightframe"><b><i>ActionProvider.VisibilityListener</i></b></A><br>
 <A HREF="pkg_android.app.html#ActivityOptions" class="hiddenlink" target="rightframe"><b>ActivityOptions</b></A><br>
 <A HREF="pkg_android.widget.html#Advanceable" class="hiddenlink" target="rightframe"><b><i>Advanceable</i></b></A><br>
 <A HREF="pkg_android.media.audiofx.html#AutomaticGainControl" class="hiddenlink" target="rightframe"><b>AutomaticGainControl</b></A><br>
@@ -135,6 +136,7 @@
 <A HREF="pkg_android.media.html#MediaRouter.RouteInfo" class="hiddenlink" target="rightframe"><b>MediaRouter.RouteInfo</b></A><br>
 <A HREF="pkg_android.media.html#MediaRouter.SimpleCallback" class="hiddenlink" target="rightframe"><b>MediaRouter.SimpleCallback</b></A><br>
 <A HREF="pkg_android.media.html#MediaRouter.UserRouteInfo" class="hiddenlink" target="rightframe"><b>MediaRouter.UserRouteInfo</b></A><br>
+<A HREF="pkg_android.media.html#MediaRouter.VolumeCallback" class="hiddenlink" target="rightframe"><b>MediaRouter.VolumeCallback</b></A><br>
 <A HREF="pkg_android.media.html#MediaSyncEvent" class="hiddenlink" target="rightframe"><b>MediaSyncEvent</b></A><br>
 <A NAME="N"></A>
 <br><font size="+2">N</font>&nbsp;
diff --git a/docs/html/sdk/api_diff/16/changes/classes_index_all.html b/docs/html/sdk/api_diff/16/changes/classes_index_all.html
index 97a4d85..6caf76c 100644
--- a/docs/html/sdk/api_diff/16/changes/classes_index_all.html
+++ b/docs/html/sdk/api_diff/16/changes/classes_index_all.html
@@ -83,6 +83,7 @@
 <A HREF="pkg_android.media.audiofx.html#AcousticEchoCanceler" class="hiddenlink" target="rightframe"><b>AcousticEchoCanceler</b></A><br>
 <A HREF="android.view.ActionMode.html" class="hiddenlink" target="rightframe">ActionMode</A><br>
 <A HREF="android.view.ActionProvider.html" class="hiddenlink" target="rightframe">ActionProvider</A><br>
+<A HREF="pkg_android.view.html#ActionProvider.VisibilityListener" class="hiddenlink" target="rightframe"><b><i>ActionProvider.VisibilityListener</i></b></A><br>
 <A HREF="android.app.Activity.html" class="hiddenlink" target="rightframe">Activity</A><br>
 <A HREF="android.content.pm.ActivityInfo.html" class="hiddenlink" target="rightframe">ActivityInfo</A><br>
 <A HREF="android.app.ActivityManager.html" class="hiddenlink" target="rightframe">ActivityManager</A><br>
@@ -520,6 +521,7 @@
 <A HREF="pkg_android.media.html#MediaRouter.RouteInfo" class="hiddenlink" target="rightframe"><b>MediaRouter.RouteInfo</b></A><br>
 <A HREF="pkg_android.media.html#MediaRouter.SimpleCallback" class="hiddenlink" target="rightframe"><b>MediaRouter.SimpleCallback</b></A><br>
 <A HREF="pkg_android.media.html#MediaRouter.UserRouteInfo" class="hiddenlink" target="rightframe"><b>MediaRouter.UserRouteInfo</b></A><br>
+<A HREF="pkg_android.media.html#MediaRouter.VolumeCallback" class="hiddenlink" target="rightframe"><b>MediaRouter.VolumeCallback</b></A><br>
 <A HREF="android.provider.MediaStore.MediaColumns.html" class="hiddenlink" target="rightframe"><i>MediaStore.MediaColumns</i></A><br>
 <A HREF="pkg_android.media.html#MediaSyncEvent" class="hiddenlink" target="rightframe"><b>MediaSyncEvent</b></A><br>
 <A HREF="android.renderscript.Mesh.html" class="hiddenlink" target="rightframe">Mesh</A><br>
diff --git a/docs/html/sdk/api_diff/16/changes/fields_index_additions.html b/docs/html/sdk/api_diff/16/changes/fields_index_additions.html
index 7ca7ad6..0d93032 100644
--- a/docs/html/sdk/api_diff/16/changes/fields_index_additions.html
+++ b/docs/html/sdk/api_diff/16/changes/fields_index_additions.html
@@ -289,8 +289,6 @@
 </nobr><br>
 <nobr><A HREF="android.content.Intent.html#android.content.Intent.FILL_IN_CLIP_DATA" class="hiddenlink" target="rightframe">FILL_IN_CLIP_DATA</A>
 </nobr><br>
-<nobr><A HREF="android.content.Intent.html#android.content.Intent.FLAG_ACTIVITY_CLOSE_SYSTEM_DIALOGS" class="hiddenlink" target="rightframe">FLAG_ACTIVITY_CLOSE_SYSTEM_DIALOGS</A>
-</nobr><br>
 <nobr><A HREF="android.accessibilityservice.AccessibilityServiceInfo.html#android.accessibilityservice.AccessibilityServiceInfo.FLAG_INCLUDE_NOT_IMPORTANT_VIEWS" class="hiddenlink" target="rightframe">FLAG_INCLUDE_NOT_IMPORTANT_VIEWS</A>
 </nobr><br>
 <nobr><A HREF="android.content.pm.ServiceInfo.html#android.content.pm.ServiceInfo.FLAG_ISOLATED_PROCESS" class="hiddenlink" target="rightframe">FLAG_ISOLATED_PROCESS</A>
@@ -570,6 +568,8 @@
 </nobr><br>
 <nobr><A HREF="android.R.attr.html#android.R.attr.mediaRouteButtonStyle" class="hiddenlink" target="rightframe">mediaRouteButtonStyle</A>
 </nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.mediaRouteTypes" class="hiddenlink" target="rightframe">mediaRouteTypes</A>
+</nobr><br>
 <nobr><A HREF="android.provider.CalendarContract.RemindersColumns.html#android.provider.CalendarContract.RemindersColumns.METHOD_ALARM" class="hiddenlink" target="rightframe">METHOD_ALARM</A>
 </nobr><br>
 <nobr><A HREF="android.content.ClipDescription.html#android.content.ClipDescription.MIMETYPE_TEXT_HTML" class="hiddenlink" target="rightframe">MIMETYPE_TEXT_HTML</A>
diff --git a/docs/html/sdk/api_diff/16/changes/fields_index_all.html b/docs/html/sdk/api_diff/16/changes/fields_index_all.html
index e7dea5d..2eee5e3 100644
--- a/docs/html/sdk/api_diff/16/changes/fields_index_all.html
+++ b/docs/html/sdk/api_diff/16/changes/fields_index_all.html
@@ -323,8 +323,6 @@
 </nobr><br>
 <nobr><A HREF="android.content.Intent.html#android.content.Intent.FILL_IN_CLIP_DATA" class="hiddenlink" target="rightframe">FILL_IN_CLIP_DATA</A>
 </nobr><br>
-<nobr><A HREF="android.content.Intent.html#android.content.Intent.FLAG_ACTIVITY_CLOSE_SYSTEM_DIALOGS" class="hiddenlink" target="rightframe">FLAG_ACTIVITY_CLOSE_SYSTEM_DIALOGS</A>
-</nobr><br>
 <nobr><A HREF="android.app.Notification.html#android.app.Notification.FLAG_HIGH_PRIORITY" class="hiddenlink" target="rightframe">FLAG_HIGH_PRIORITY</A>
 </nobr><br>
 <nobr><A HREF="android.accessibilityservice.AccessibilityServiceInfo.html#android.accessibilityservice.AccessibilityServiceInfo.FLAG_INCLUDE_NOT_IMPORTANT_VIEWS" class="hiddenlink" target="rightframe">FLAG_INCLUDE_NOT_IMPORTANT_VIEWS</A>
@@ -634,6 +632,8 @@
 </nobr><br>
 <nobr><A HREF="android.R.attr.html#android.R.attr.mediaRouteButtonStyle" class="hiddenlink" target="rightframe">mediaRouteButtonStyle</A>
 </nobr><br>
+<nobr><A HREF="android.R.attr.html#android.R.attr.mediaRouteTypes" class="hiddenlink" target="rightframe">mediaRouteTypes</A>
+</nobr><br>
 <nobr><A HREF="android.provider.CalendarContract.RemindersColumns.html#android.provider.CalendarContract.RemindersColumns.METHOD_ALARM" class="hiddenlink" target="rightframe">METHOD_ALARM</A>
 </nobr><br>
 <nobr><A HREF="android.content.ClipDescription.html#android.content.ClipDescription.MIMETYPE_TEXT_HTML" class="hiddenlink" target="rightframe">MIMETYPE_TEXT_HTML</A>
diff --git a/docs/html/sdk/api_diff/16/changes/jdiff_statistics.html b/docs/html/sdk/api_diff/16/changes/jdiff_statistics.html
index 090eb6e..f0ddde1 100644
--- a/docs/html/sdk/api_diff/16/changes/jdiff_statistics.html
+++ b/docs/html/sdk/api_diff/16/changes/jdiff_statistics.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
@@ -96,10 +96,10 @@
 </TR>
 <TR>
   <TD>Classes and <i>Interfaces</i></TD>
-  <TD ALIGN="right">55</TD>
+  <TD ALIGN="right">57</TD>
   <TD ALIGN="right">211</TD>
   <TD ALIGN="right">0</TD>
-  <TD ALIGN="right">266</TD>
+  <TD ALIGN="right">268</TD>
 </TR>
 <TR>
   <TD>Constructors</TD>
@@ -110,10 +110,10 @@
 </TR>
 <TR>
   <TD>Methods</TD>
-  <TD ALIGN="right">374</TD>
+  <TD ALIGN="right">381</TD>
   <TD ALIGN="right">151</TD>
   <TD ALIGN="right">20</TD>
-  <TD ALIGN="right">545</TD>
+  <TD ALIGN="right">552</TD>
 </TR>
 <TR>
   <TD>Fields</TD>
@@ -124,10 +124,10 @@
 </TR>
 <TR>
   <TD style="background-color:#FAFAFA"><b>Total</b></TD>
-  <TD  style="background-color:#FAFAFA" ALIGN="right"><strong>616</strong></TD>
+  <TD  style="background-color:#FAFAFA" ALIGN="right"><strong>625</strong></TD>
   <TD  style="background-color:#FAFAFA" ALIGN="right"><strong>469</strong></TD>
   <TD  style="background-color:#FAFAFA" ALIGN="right"><strong>28</strong></TD>
-  <TD  style="background-color:#FAFAFA" ALIGN="right"><strong>1113</strong></TD>
+  <TD  style="background-color:#FAFAFA" ALIGN="right"><strong>1122</strong></TD>
 </TR>
 </TABLE>
 <br>
@@ -143,7 +143,7 @@
   <TD><A HREF="pkg_android.accessibilityservice.html">android.accessibilityservice</A></TD>
 </TR>
 <TR>
-  <TD ALIGN="center">22</TD>
+  <TD ALIGN="center">23</TD>
   <TD><A HREF="pkg_android.media.html">android.media</A></TD>
 </TR>
 <TR>
@@ -199,12 +199,12 @@
   <TD><A HREF="pkg_android.database.html">android.database</A></TD>
 </TR>
 <TR>
-  <TD ALIGN="center">3</TD>
-  <TD><A HREF="pkg_android.os.html">android.os</A></TD>
+  <TD ALIGN="center">4</TD>
+  <TD><A HREF="pkg_android.view.html">android.view</A></TD>
 </TR>
 <TR>
   <TD ALIGN="center">3</TD>
-  <TD><A HREF="pkg_android.view.html">android.view</A></TD>
+  <TD><A HREF="pkg_android.os.html">android.os</A></TD>
 </TR>
 <TR>
   <TD ALIGN="center">3</TD>
@@ -284,11 +284,11 @@
 </TR>
 <TR>
   <TD ALIGN="center">&lt;1</TD>
-  <TD><A HREF="pkg_android.view.inputmethod.html">android.view.inputmethod</A></TD>
+  <TD><A HREF="pkg_android.html">android</A></TD>
 </TR>
 <TR>
   <TD ALIGN="center">&lt;1</TD>
-  <TD><A HREF="pkg_android.html">android</A></TD>
+  <TD><A HREF="pkg_android.view.inputmethod.html">android.view.inputmethod</A></TD>
 </TR>
 <TR>
   <TD ALIGN="center">&lt;1</TD>
@@ -450,6 +450,11 @@
 junit.framework.ComparisonFailure</A></TD>
 </TR>
 <TR>
+  <TD ALIGN="center">46</TD>
+  <TD><A HREF="android.view.ActionProvider.html">
+android.view.ActionProvider</A></TD>
+</TR>
+<TR>
   <TD ALIGN="center">45</TD>
   <TD><A HREF="android.renderscript.Program.html">
 android.renderscript.Program</A></TD>
@@ -510,11 +515,6 @@
 android.widget.Spinner</A></TD>
 </TR>
 <TR>
-  <TD ALIGN="center">27</TD>
-  <TD><A HREF="android.view.ActionProvider.html">
-android.view.ActionProvider</A></TD>
-</TR>
-<TR>
   <TD ALIGN="center">26</TD>
   <TD><A HREF="android.net.wifi.p2p.WifiP2pManager.html">
 android.net.wifi.p2p.WifiP2pManager</A></TD>
@@ -966,6 +966,11 @@
 </TR>
 <TR>
   <TD ALIGN="center">5</TD>
+  <TD><A HREF="android.widget.RemoteViews.html">
+android.widget.RemoteViews</A></TD>
+</TR>
+<TR>
+  <TD ALIGN="center">5</TD>
   <TD><A HREF="junit.runner.BaseTestRunner.html">
 junit.runner.BaseTestRunner</A></TD>
 </TR>
@@ -1151,11 +1156,6 @@
 </TR>
 <TR>
   <TD ALIGN="center">2</TD>
-  <TD><A HREF="android.widget.RemoteViews.html">
-android.widget.RemoteViews</A></TD>
-</TR>
-<TR>
-  <TD ALIGN="center">2</TD>
   <TD><A HREF="android.app.ActivityManager.RunningAppProcessInfo.html">
 android.app.ActivityManager.RunningAppProcessInfo</A></TD>
 </TR>
@@ -1176,11 +1176,6 @@
 </TR>
 <TR>
   <TD ALIGN="center">1</TD>
-  <TD><A HREF="android.content.Intent.html">
-android.content.Intent</A></TD>
-</TR>
-<TR>
-  <TD ALIGN="center">1</TD>
   <TD><A HREF="android.webkit.WebSettings.html">
 android.webkit.WebSettings</A></TD>
 </TR>
@@ -1211,6 +1206,11 @@
 </TR>
 <TR>
   <TD ALIGN="center">1</TD>
+  <TD><A HREF="android.content.Intent.html">
+android.content.Intent</A></TD>
+</TR>
+<TR>
+  <TD ALIGN="center">1</TD>
   <TD><A HREF="android.widget.LinearLayout.html">
 android.widget.LinearLayout</A></TD>
 </TR>
diff --git a/docs/html/sdk/api_diff/16/changes/junit.framework.Assert.html b/docs/html/sdk/api_diff/16/changes/junit.framework.Assert.html
index 1ccd326..0d5b2cb 100644
--- a/docs/html/sdk/api_diff/16/changes/junit.framework.Assert.html
+++ b/docs/html/sdk/api_diff/16/changes/junit.framework.Assert.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/junit.framework.AssertionFailedError.html b/docs/html/sdk/api_diff/16/changes/junit.framework.AssertionFailedError.html
index cda8b99..8cc284c6 100644
--- a/docs/html/sdk/api_diff/16/changes/junit.framework.AssertionFailedError.html
+++ b/docs/html/sdk/api_diff/16/changes/junit.framework.AssertionFailedError.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/junit.framework.ComparisonFailure.html b/docs/html/sdk/api_diff/16/changes/junit.framework.ComparisonFailure.html
index f8f57bd..afdcc5f 100644
--- a/docs/html/sdk/api_diff/16/changes/junit.framework.ComparisonFailure.html
+++ b/docs/html/sdk/api_diff/16/changes/junit.framework.ComparisonFailure.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/junit.framework.TestResult.html b/docs/html/sdk/api_diff/16/changes/junit.framework.TestResult.html
index 6523319..ada98fd 100644
--- a/docs/html/sdk/api_diff/16/changes/junit.framework.TestResult.html
+++ b/docs/html/sdk/api_diff/16/changes/junit.framework.TestResult.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/junit.framework.TestSuite.html b/docs/html/sdk/api_diff/16/changes/junit.framework.TestSuite.html
index 10e9b56..fd9a0ca 100644
--- a/docs/html/sdk/api_diff/16/changes/junit.framework.TestSuite.html
+++ b/docs/html/sdk/api_diff/16/changes/junit.framework.TestSuite.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/junit.runner.BaseTestRunner.html b/docs/html/sdk/api_diff/16/changes/junit.runner.BaseTestRunner.html
index fc7da24..64880bc 100644
--- a/docs/html/sdk/api_diff/16/changes/junit.runner.BaseTestRunner.html
+++ b/docs/html/sdk/api_diff/16/changes/junit.runner.BaseTestRunner.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/methods_index_additions.html b/docs/html/sdk/api_diff/16/changes/methods_index_additions.html
index 6c34ae3..3264969 100644
--- a/docs/html/sdk/api_diff/16/changes/methods_index_additions.html
+++ b/docs/html/sdk/api_diff/16/changes/methods_index_additions.html
@@ -724,6 +724,8 @@
 (<code>int</code>)</A></nobr><br>
 <nobr><A HREF="android.view.InputDevice.html#android.view.InputDevice.isVirtual_added()" class="hiddenlink" target="rightframe"><b>isVirtual</b>
 ()</A></nobr><br>
+<nobr><A HREF="android.view.ActionProvider.html#android.view.ActionProvider.isVisible_added()" class="hiddenlink" target="rightframe"><b>isVisible</b>
+()</A></nobr><br>
 <nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.isVisibleToUser_added()" class="hiddenlink" target="rightframe"><b>isVisibleToUser</b>
 ()</A></nobr><br>
 <nobr><A HREF="android.database.sqlite.SQLiteDatabase.html#android.database.sqlite.SQLiteDatabase.isWriteAheadLoggingEnabled_added()" class="hiddenlink" target="rightframe"><b>isWriteAheadLoggingEnabled</b>
@@ -866,6 +868,8 @@
 (<code>int</code>)</A></nobr><br>
 <nobr><A HREF="android.view.View.html#android.view.View.onWindowSystemUiVisibilityChanged_added(int)" class="hiddenlink" target="rightframe"><b>onWindowSystemUiVisibilityChanged</b>
 (<code>int</code>)</A></nobr><br>
+<nobr><A HREF="android.view.ActionProvider.html#android.view.ActionProvider.overridesItemVisibility_added()" class="hiddenlink" target="rightframe"><b>overridesItemVisibility</b>
+()</A></nobr><br>
 <A NAME="P"></A>
 <br><font size="+2">P</font>&nbsp;
 <a href="#A"><font size="-2">A</font></a> 
@@ -979,6 +983,8 @@
 (<code>String, String[], CancellationSignal</code>)</A></nobr><br>
 <nobr><A HREF="android.database.sqlite.SQLiteDatabase.html#android.database.sqlite.SQLiteDatabase.rawQueryWithFactory_added(android.database.sqlite.SQLiteDatabase.CursorFactory, java.lang.String, java.lang.String[], java.lang.String, android.os.CancellationSignal)" class="hiddenlink" target="rightframe"><b>rawQueryWithFactory</b>
 (<code>CursorFactory, String, String[], String, CancellationSignal</code>)</A></nobr><br>
+<nobr><A HREF="android.view.ActionProvider.html#android.view.ActionProvider.refreshVisibility_added()" class="hiddenlink" target="rightframe"><b>refreshVisibility</b>
+()</A></nobr><br>
 <nobr><A HREF="android.content.Loader.html#android.content.Loader.registerOnLoadCanceledListener_added(android.content.Loader.OnLoadCanceledListener<D>)" class="hiddenlink" target="rightframe"><b>registerOnLoadCanceledListener</b>
 (<code>OnLoadCanceledListener&lt;D&gt;</code>)</A></nobr><br>
 <nobr><A HREF="android.drm.DrmManagerClient.html#android.drm.DrmManagerClient.release_added()" class="hiddenlink" target="rightframe"><b>release</b>
@@ -1139,6 +1145,10 @@
 (<code>int</code>)</A></nobr><br>
 <nobr><A HREF="android.widget.RemoteViews.html#android.widget.RemoteViews.setTextViewCompoundDrawables_added(int, int, int, int, int)" class="hiddenlink" target="rightframe"><b>setTextViewCompoundDrawables</b>
 (<code>int, int, int, int, int</code>)</A></nobr><br>
+<nobr><A HREF="android.widget.RemoteViews.html#android.widget.RemoteViews.setTextViewCompoundDrawablesRelative_added(int, int, int, int, int)" class="hiddenlink" target="rightframe"><b>setTextViewCompoundDrawablesRelative</b>
+(<code>int, int, int, int, int</code>)</A></nobr><br>
+<nobr><A HREF="android.widget.RemoteViews.html#android.widget.RemoteViews.setTextViewTextSize_added(int, int, float)" class="hiddenlink" target="rightframe"><b>setTextViewTextSize</b>
+(<code>int, int, float</code>)</A></nobr><br>
 <nobr><A HREF="android.widget.Switch.html#android.widget.Switch.setThumbDrawable_added(android.graphics.drawable.Drawable)" class="hiddenlink" target="rightframe"><b>setThumbDrawable</b>
 (<code>Drawable</code>)</A></nobr><br>
 <nobr><A HREF="android.widget.Switch.html#android.widget.Switch.setThumbResource_added(int)" class="hiddenlink" target="rightframe"><b>setThumbResource</b>
@@ -1163,6 +1173,10 @@
 (<code>int, FieldPacker, Element, int[]</code>)</A></nobr><br>
 <nobr><A HREF="android.media.MediaPlayer.html#android.media.MediaPlayer.setVideoScalingMode_added(int)" class="hiddenlink" target="rightframe"><b>setVideoScalingMode</b>
 (<code>int</code>)</A></nobr><br>
+<nobr><A HREF="android.widget.RemoteViews.html#android.widget.RemoteViews.setViewPadding_added(int, int, int, int, int)" class="hiddenlink" target="rightframe"><b>setViewPadding</b>
+(<code>int, int, int, int, int</code>)</A></nobr><br>
+<nobr><A HREF="android.view.ActionProvider.html#android.view.ActionProvider.setVisibilityListener_added(android.view.ActionProvider.VisibilityListener)" class="hiddenlink" target="rightframe"><b>setVisibilityListener</b>
+(<code>VisibilityListener</code>)</A></nobr><br>
 <nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.setVisibleToUser_added(boolean)" class="hiddenlink" target="rightframe"><b>setVisibleToUser</b>
 (<code>boolean</code>)</A></nobr><br>
 <nobr><A HREF="android.widget.CalendarView.html#android.widget.CalendarView.setWeekDayTextAppearance_added(int)" class="hiddenlink" target="rightframe"><b>setWeekDayTextAppearance</b>
diff --git a/docs/html/sdk/api_diff/16/changes/methods_index_all.html b/docs/html/sdk/api_diff/16/changes/methods_index_all.html
index 8c91302..628f0b7 100644
--- a/docs/html/sdk/api_diff/16/changes/methods_index_all.html
+++ b/docs/html/sdk/api_diff/16/changes/methods_index_all.html
@@ -1009,6 +1009,8 @@
 (<code>int</code>)</A></nobr><br>
 <nobr><A HREF="android.view.InputDevice.html#android.view.InputDevice.isVirtual_added()" class="hiddenlink" target="rightframe"><b>isVirtual</b>
 ()</A></nobr><br>
+<nobr><A HREF="android.view.ActionProvider.html#android.view.ActionProvider.isVisible_added()" class="hiddenlink" target="rightframe"><b>isVisible</b>
+()</A></nobr><br>
 <nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.isVisibleToUser_added()" class="hiddenlink" target="rightframe"><b>isVisibleToUser</b>
 ()</A></nobr><br>
 <nobr><A HREF="android.database.sqlite.SQLiteDatabase.html#android.database.sqlite.SQLiteDatabase.isWriteAheadLoggingEnabled_added()" class="hiddenlink" target="rightframe"><b>isWriteAheadLoggingEnabled</b>
@@ -1192,6 +1194,8 @@
 (<code>SurfaceTexture</code>)</A></nobr><br>
 <nobr><A HREF="android.view.View.html#android.view.View.onWindowSystemUiVisibilityChanged_added(int)" class="hiddenlink" target="rightframe"><b>onWindowSystemUiVisibilityChanged</b>
 (<code>int</code>)</A></nobr><br>
+<nobr><A HREF="android.view.ActionProvider.html#android.view.ActionProvider.overridesItemVisibility_added()" class="hiddenlink" target="rightframe"><b>overridesItemVisibility</b>
+()</A></nobr><br>
 <A NAME="P"></A>
 <br><font size="+2">P</font>&nbsp;
 <a href="#A"><font size="-2">A</font></a> 
@@ -1318,6 +1322,8 @@
 (<code>String, String[], CancellationSignal</code>)</A></nobr><br>
 <nobr><A HREF="android.database.sqlite.SQLiteDatabase.html#android.database.sqlite.SQLiteDatabase.rawQueryWithFactory_added(android.database.sqlite.SQLiteDatabase.CursorFactory, java.lang.String, java.lang.String[], java.lang.String, android.os.CancellationSignal)" class="hiddenlink" target="rightframe"><b>rawQueryWithFactory</b>
 (<code>CursorFactory, String, String[], String, CancellationSignal</code>)</A></nobr><br>
+<nobr><A HREF="android.view.ActionProvider.html#android.view.ActionProvider.refreshVisibility_added()" class="hiddenlink" target="rightframe"><b>refreshVisibility</b>
+()</A></nobr><br>
 <nobr><A HREF="android.content.Loader.html#android.content.Loader.registerOnLoadCanceledListener_added(android.content.Loader.OnLoadCanceledListener<D>)" class="hiddenlink" target="rightframe"><b>registerOnLoadCanceledListener</b>
 (<code>OnLoadCanceledListener&lt;D&gt;</code>)</A></nobr><br>
 <nobr><A HREF="android.drm.DrmManagerClient.html#android.drm.DrmManagerClient.release_added()" class="hiddenlink" target="rightframe"><b>release</b>
@@ -1576,6 +1582,10 @@
 (<code>boolean</code>)</A></nobr><br>
 <nobr><A HREF="android.widget.RemoteViews.html#android.widget.RemoteViews.setTextViewCompoundDrawables_added(int, int, int, int, int)" class="hiddenlink" target="rightframe"><b>setTextViewCompoundDrawables</b>
 (<code>int, int, int, int, int</code>)</A></nobr><br>
+<nobr><A HREF="android.widget.RemoteViews.html#android.widget.RemoteViews.setTextViewCompoundDrawablesRelative_added(int, int, int, int, int)" class="hiddenlink" target="rightframe"><b>setTextViewCompoundDrawablesRelative</b>
+(<code>int, int, int, int, int</code>)</A></nobr><br>
+<nobr><A HREF="android.widget.RemoteViews.html#android.widget.RemoteViews.setTextViewTextSize_added(int, int, float)" class="hiddenlink" target="rightframe"><b>setTextViewTextSize</b>
+(<code>int, int, float</code>)</A></nobr><br>
 <nobr><A HREF="android.widget.Switch.html#android.widget.Switch.setThumbDrawable_added(android.graphics.drawable.Drawable)" class="hiddenlink" target="rightframe"><b>setThumbDrawable</b>
 (<code>Drawable</code>)</A></nobr><br>
 <nobr><A HREF="android.widget.Switch.html#android.widget.Switch.setThumbResource_added(int)" class="hiddenlink" target="rightframe"><b>setThumbResource</b>
@@ -1604,6 +1614,10 @@
 (<code>int, int</code>)</A></nobr><br>
 <nobr><A HREF="android.media.MediaPlayer.html#android.media.MediaPlayer.setVideoScalingMode_added(int)" class="hiddenlink" target="rightframe"><b>setVideoScalingMode</b>
 (<code>int</code>)</A></nobr><br>
+<nobr><A HREF="android.widget.RemoteViews.html#android.widget.RemoteViews.setViewPadding_added(int, int, int, int, int)" class="hiddenlink" target="rightframe"><b>setViewPadding</b>
+(<code>int, int, int, int, int</code>)</A></nobr><br>
+<nobr><A HREF="android.view.ActionProvider.html#android.view.ActionProvider.setVisibilityListener_added(android.view.ActionProvider.VisibilityListener)" class="hiddenlink" target="rightframe"><b>setVisibilityListener</b>
+(<code>VisibilityListener</code>)</A></nobr><br>
 <nobr><A HREF="android.view.accessibility.AccessibilityNodeInfo.html#android.view.accessibility.AccessibilityNodeInfo.setVisibleToUser_added(boolean)" class="hiddenlink" target="rightframe"><b>setVisibleToUser</b>
 (<code>boolean</code>)</A></nobr><br>
 <nobr><A HREF="android.widget.CalendarView.html#android.widget.CalendarView.setWeekDayTextAppearance_added(int)" class="hiddenlink" target="rightframe"><b>setWeekDayTextAppearance</b>
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.accessibilityservice.html b/docs/html/sdk/api_diff/16/changes/pkg_android.accessibilityservice.html
index 29a51cf..e348264 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.accessibilityservice.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.accessibilityservice.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.animation.html b/docs/html/sdk/api_diff/16/changes/pkg_android.animation.html
index b678d70..148635b 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.animation.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.animation.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.app.html b/docs/html/sdk/api_diff/16/changes/pkg_android.app.html
index a9bb343..1eaef10 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.app.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.app.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.appwidget.html b/docs/html/sdk/api_diff/16/changes/pkg_android.appwidget.html
index 59cf0eb..1495d4b 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.appwidget.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.appwidget.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.bluetooth.html b/docs/html/sdk/api_diff/16/changes/pkg_android.bluetooth.html
index 6f66306..f408836 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.bluetooth.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.bluetooth.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.content.html b/docs/html/sdk/api_diff/16/changes/pkg_android.content.html
index 3a7cfe6..cb45c96 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.content.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.content.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.content.pm.html b/docs/html/sdk/api_diff/16/changes/pkg_android.content.pm.html
index d926e49..7f80041 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.content.pm.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.content.pm.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.content.res.html b/docs/html/sdk/api_diff/16/changes/pkg_android.content.res.html
index e326722..b2dde4d 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.content.res.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.content.res.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.database.html b/docs/html/sdk/api_diff/16/changes/pkg_android.database.html
index 25f888c..43029e5 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.database.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.database.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.database.sqlite.html b/docs/html/sdk/api_diff/16/changes/pkg_android.database.sqlite.html
index 9566e4f..4c47f61 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.database.sqlite.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.database.sqlite.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.drm.html b/docs/html/sdk/api_diff/16/changes/pkg_android.drm.html
index a8e3f5b..9973797 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.drm.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.drm.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.graphics.drawable.html b/docs/html/sdk/api_diff/16/changes/pkg_android.graphics.drawable.html
index 33823cf..e4f0911 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.graphics.drawable.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.graphics.drawable.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.graphics.html b/docs/html/sdk/api_diff/16/changes/pkg_android.graphics.html
index a43b0ce..3b8d71b 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.graphics.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.graphics.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.hardware.html b/docs/html/sdk/api_diff/16/changes/pkg_android.hardware.html
index bc9dcd3..fb6b102 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.hardware.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.hardware.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.html b/docs/html/sdk/api_diff/16/changes/pkg_android.html
index 5c6d097..19b3c01 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.media.audiofx.html b/docs/html/sdk/api_diff/16/changes/pkg_android.media.audiofx.html
index 1cddd6d..757acd1 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.media.audiofx.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.media.audiofx.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.media.html b/docs/html/sdk/api_diff/16/changes/pkg_android.media.html
index 9d4b42a..5083802 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.media.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.media.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
@@ -235,6 +235,13 @@
 </TR>
 <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
   <TD VALIGN="TOP" WIDTH="25%">
+  <A NAME="MediaRouter.VolumeCallback"></A>
+  <nobr><A HREF="../../../../reference/android/media/MediaRouter.VolumeCallback.html" target="_top"><code>MediaRouter.VolumeCallback</code></A></nobr>
+  </TD>
+  <TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+  <TD VALIGN="TOP" WIDTH="25%">
   <A NAME="MediaSyncEvent"></A>
   <nobr><A HREF="../../../../reference/android/media/MediaSyncEvent.html" target="_top"><code>MediaSyncEvent</code></A></nobr>
   </TD>
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.net.html b/docs/html/sdk/api_diff/16/changes/pkg_android.net.html
index 9df67eb..fb9213e 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.net.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.net.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.net.wifi.p2p.html b/docs/html/sdk/api_diff/16/changes/pkg_android.net.wifi.p2p.html
index 0477d8b..e346fed 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.net.wifi.p2p.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.net.wifi.p2p.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.nfc.html b/docs/html/sdk/api_diff/16/changes/pkg_android.nfc.html
index b80a460..d6a49d2 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.nfc.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.nfc.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.nfc.tech.html b/docs/html/sdk/api_diff/16/changes/pkg_android.nfc.tech.html
index 53eb382..f01ce8c 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.nfc.tech.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.nfc.tech.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.os.html b/docs/html/sdk/api_diff/16/changes/pkg_android.os.html
index 93d2f3d..689f8b3 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.os.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.os.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.provider.html b/docs/html/sdk/api_diff/16/changes/pkg_android.provider.html
index 242a2f7..6a9f620 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.provider.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.provider.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.renderscript.html b/docs/html/sdk/api_diff/16/changes/pkg_android.renderscript.html
index ad7a71f..84f8524f 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.renderscript.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.renderscript.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.security.html b/docs/html/sdk/api_diff/16/changes/pkg_android.security.html
index 7a3b458..c3b16dd 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.security.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.security.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.service.textservice.html b/docs/html/sdk/api_diff/16/changes/pkg_android.service.textservice.html
index 773a685..511016d 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.service.textservice.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.service.textservice.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.speech.html b/docs/html/sdk/api_diff/16/changes/pkg_android.speech.html
index 26df4e2..990b7b1 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.speech.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.speech.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.test.html b/docs/html/sdk/api_diff/16/changes/pkg_android.test.html
index 71e3841..8d4a6cb 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.test.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.test.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.test.mock.html b/docs/html/sdk/api_diff/16/changes/pkg_android.test.mock.html
index 1d43c38..30be34c 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.test.mock.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.test.mock.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.text.html b/docs/html/sdk/api_diff/16/changes/pkg_android.text.html
index ceaaf3c..378f3b5 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.text.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.text.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.util.html b/docs/html/sdk/api_diff/16/changes/pkg_android.util.html
index 3b12f35..b035341 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.util.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.util.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.view.accessibility.html b/docs/html/sdk/api_diff/16/changes/pkg_android.view.accessibility.html
index 5e68a85..5e2edfe 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.view.accessibility.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.view.accessibility.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.view.html b/docs/html/sdk/api_diff/16/changes/pkg_android.view.html
index 527bed3..85d3c36 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.view.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.view.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
@@ -81,6 +81,13 @@
 </TH>
 <TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
   <TD VALIGN="TOP" WIDTH="25%">
+  <A NAME="ActionProvider.VisibilityListener"></A>
+  <nobr><A HREF="../../../../reference/android/view/ActionProvider.VisibilityListener.html" target="_top"><code><I>ActionProvider.VisibilityListener</I></code></A></nobr>
+  </TD>
+  <TD>&nbsp;</TD>
+</TR>
+<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
+  <TD VALIGN="TOP" WIDTH="25%">
   <A NAME="Choreographer"></A>
   <nobr><A HREF="../../../../reference/android/view/Choreographer.html" target="_top"><code>Choreographer</code></A></nobr>
   </TD>
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.view.inputmethod.html b/docs/html/sdk/api_diff/16/changes/pkg_android.view.inputmethod.html
index 10e3a61..976a051 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.view.inputmethod.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.view.inputmethod.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.view.textservice.html b/docs/html/sdk/api_diff/16/changes/pkg_android.view.textservice.html
index cc01a3a..c4cac96 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.view.textservice.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.view.textservice.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.webkit.html b/docs/html/sdk/api_diff/16/changes/pkg_android.webkit.html
index e00cf29..62fb8ee 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.webkit.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.webkit.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_android.widget.html b/docs/html/sdk/api_diff/16/changes/pkg_android.widget.html
index 0736a42..d52b211 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_android.widget.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_android.widget.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_junit.framework.html b/docs/html/sdk/api_diff/16/changes/pkg_junit.framework.html
index 4bd6a2e..a5d6fcc 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_junit.framework.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_junit.framework.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/changes/pkg_junit.runner.html b/docs/html/sdk/api_diff/16/changes/pkg_junit.runner.html
index 96523fb..dcd45ef 100644
--- a/docs/html/sdk/api_diff/16/changes/pkg_junit.runner.html
+++ b/docs/html/sdk/api_diff/16/changes/pkg_junit.runner.html
@@ -54,7 +54,7 @@
       </tr>
       <tr>
         <td class="diffspec">Generated</td>
-        <td class="diffvalue">2012.06.26 22:31</td>
+        <td class="diffvalue">2012.07.16 10:58</td>
       </tr>
     </table>
     </div><!-- End and-diff-id -->
diff --git a/docs/html/sdk/api_diff/16/missingSinces.txt b/docs/html/sdk/api_diff/16/missingSinces.txt
index 128fb09..9273668 100644
--- a/docs/html/sdk/api_diff/16/missingSinces.txt
+++ b/docs/html/sdk/api_diff/16/missingSinces.txt
@@ -1,5 +1,6 @@
 NO DOC BLOCK: android.view.accessibility.AccessibilityNodeProvider Class
 NO DOC BLOCK: android.media.audiofx.AcousticEchoCanceler Class
+NO DOC BLOCK: android.view.ActionProvider.VisibilityListener Interface
 NO DOC BLOCK: android.app.ActivityOptions Class
 NO DOC BLOCK: android.widget.Advanceable Interface
 NO DOC BLOCK: android.media.audiofx.AutomaticGainControl Class
@@ -34,6 +35,7 @@
 NO DOC BLOCK: android.media.MediaRouter.RouteInfo Class
 NO DOC BLOCK: android.media.MediaRouter.SimpleCallback Class
 NO DOC BLOCK: android.media.MediaRouter.UserRouteInfo Class
+NO DOC BLOCK: android.media.MediaRouter.VolumeCallback Class
 NO DOC BLOCK: android.media.MediaSyncEvent Class
 NO DOC BLOCK: android.nfc.NfcAdapter.CreateBeamUrisCallback Interface
 NO DOC BLOCK: android.media.audiofx.NoiseSuppressor Class
@@ -283,6 +285,7 @@
 NO DOC BLOCK: android.view.ActionMode Method isTitleOptional()
 NO DOC BLOCK: android.animation.LayoutTransition Method isTransitionTypeEnabled(int)
 NO DOC BLOCK: android.view.InputDevice Method isVirtual()
+NO DOC BLOCK: android.view.ActionProvider Method isVisible()
 NO DOC BLOCK: android.view.accessibility.AccessibilityNodeInfo Method isVisibleToUser()
 NO DOC BLOCK: android.database.sqlite.SQLiteDatabase Method isWriteAheadLoggingEnabled()
 NO DOC BLOCK: android.accessibilityservice.AccessibilityServiceInfo Method loadDescription(android.content.pm.PackageManager)
@@ -308,6 +311,7 @@
 NO DOC BLOCK: android.app.Activity Method onPrepareNavigateUpTaskStack(android.app.TaskStackBuilder)
 NO DOC BLOCK: android.view.View Method onScreenStateChanged(int)
 NO DOC BLOCK: android.view.View Method onWindowSystemUiVisibilityChanged(int)
+NO DOC BLOCK: android.view.ActionProvider Method overridesItemVisibility()
 NO DOC BLOCK: android.view.View Method performAccessibilityAction(int, android.os.Bundle)
 NO DOC BLOCK: android.view.View.AccessibilityDelegate Method performAccessibilityAction(android.view.View, int, android.os.Bundle)
 NO DOC BLOCK: android.view.accessibility.AccessibilityNodeInfo Method performAction(int, android.os.Bundle)
@@ -324,6 +328,7 @@
 NO DOC BLOCK: android.database.sqlite.SQLiteDatabase Method queryWithFactory(android.database.sqlite.SQLiteDatabase.CursorFactory, boolean, java.lang.String, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String, java.lang.String, android.os.CancellationSignal)
 NO DOC BLOCK: android.database.sqlite.SQLiteDatabase Method rawQuery(java.lang.String, java.lang.String[], android.os.CancellationSignal)
 NO DOC BLOCK: android.database.sqlite.SQLiteDatabase Method rawQueryWithFactory(android.database.sqlite.SQLiteDatabase.CursorFactory, java.lang.String, java.lang.String[], java.lang.String, android.os.CancellationSignal)
+NO DOC BLOCK: android.view.ActionProvider Method refreshVisibility()
 NO DOC BLOCK: android.content.Loader Method registerOnLoadCanceledListener(android.content.Loader.OnLoadCanceledListener<D>)
 NO DOC BLOCK: android.drm.DrmManagerClient Method release()
 NO DOC BLOCK: android.net.wifi.p2p.WifiP2pManager Method removeLocalService(android.net.wifi.p2p.WifiP2pManager.Channel, android.net.wifi.p2p.nsd.WifiP2pServiceInfo, android.net.wifi.p2p.WifiP2pManager.ActionListener)
@@ -388,6 +393,8 @@
 NO DOC BLOCK: android.widget.Switch Method setSwitchMinWidth(int)
 NO DOC BLOCK: android.widget.Switch Method setSwitchPadding(int)
 NO DOC BLOCK: android.widget.RemoteViews Method setTextViewCompoundDrawables(int, int, int, int, int)
+NO DOC BLOCK: android.widget.RemoteViews Method setTextViewCompoundDrawablesRelative(int, int, int, int, int)
+NO DOC BLOCK: android.widget.RemoteViews Method setTextViewTextSize(int, int, float)
 NO DOC BLOCK: android.widget.Switch Method setThumbDrawable(android.graphics.drawable.Drawable)
 NO DOC BLOCK: android.widget.Switch Method setThumbResource(int)
 NO DOC BLOCK: android.widget.Switch Method setThumbTextPadding(int)
@@ -400,6 +407,8 @@
 NO DOC BLOCK: android.app.Notification.Builder Method setUsesChronometer(boolean)
 NO DOC BLOCK: android.renderscript.Script Method setVar(int, android.renderscript.FieldPacker, android.renderscript.Element, int[])
 NO DOC BLOCK: android.media.MediaPlayer Method setVideoScalingMode(int)
+NO DOC BLOCK: android.widget.RemoteViews Method setViewPadding(int, int, int, int, int)
+NO DOC BLOCK: android.view.ActionProvider Method setVisibilityListener(android.view.ActionProvider.VisibilityListener)
 NO DOC BLOCK: android.view.accessibility.AccessibilityNodeInfo Method setVisibleToUser(boolean)
 NO DOC BLOCK: android.widget.CalendarView Method setWeekDayTextAppearance(int)
 NO DOC BLOCK: android.widget.CalendarView Method setWeekNumberColor(int)
@@ -485,7 +494,6 @@
 NO DOC BLOCK: android.speech.RecognizerIntent Field EXTRA_SECURE
 NO DOC BLOCK: android.content.pm.PackageManager Field FEATURE_TELEVISION
 NO DOC BLOCK: android.content.Intent Field FILL_IN_CLIP_DATA
-NO DOC BLOCK: android.content.Intent Field FLAG_ACTIVITY_CLOSE_SYSTEM_DIALOGS
 NO DOC BLOCK: android.accessibilityservice.AccessibilityServiceInfo Field FLAG_INCLUDE_NOT_IMPORTANT_VIEWS
 NO DOC BLOCK: android.content.pm.ServiceInfo Field FLAG_ISOLATED_PROCESS
 NO DOC BLOCK: android.content.Intent Field FLAG_RECEIVER_FOREGROUND
@@ -538,6 +546,7 @@
 NO DOC BLOCK: android.media.MediaPlayer Field MEDIA_MIMETYPE_TEXT_SUBRIP
 NO DOC BLOCK: android.content.Context Field MEDIA_ROUTER_SERVICE
 NO DOC BLOCK: android.R.attr Field mediaRouteButtonStyle
+NO DOC BLOCK: android.R.attr Field mediaRouteTypes
 NO DOC BLOCK: android.provider.CalendarContract.RemindersColumns Field METHOD_ALARM
 NO DOC BLOCK: android.content.ClipDescription Field MIMETYPE_TEXT_HTML
 NO DOC BLOCK: android.content.Context Field MODE_ENABLE_WRITE_AHEAD_LOGGING
diff --git a/docs/html/sdk/api_diff/16/user_comments_for_15_to_16.xml b/docs/html/sdk/api_diff/16/user_comments_for_15_to_16.xml
index 4852d37..ee16273 100644
--- a/docs/html/sdk/api_diff/16/user_comments_for_15_to_16.xml
+++ b/docs/html/sdk/api_diff/16/user_comments_for_15_to_16.xml
@@ -142,6 +142,12 @@
   </text>
 </comment>
 <comment>
+  <identifier id="android.R.attr.mediaRouteTypes"/>
+  <text>
+    InsertCommentsHere
+  </text>
+</comment>
+<comment>
   <identifier id="android.R.attr.parentActivityName"/>
   <text>
     InsertCommentsHere
@@ -1252,12 +1258,6 @@
   </text>
 </comment>
 <comment>
-  <identifier id="android.content.Intent.FLAG_ACTIVITY_CLOSE_SYSTEM_DIALOGS"/>
-  <text>
-    InsertCommentsHere
-  </text>
-</comment>
-<comment>
   <identifier id="android.content.Intent.FLAG_RECEIVER_FOREGROUND"/>
   <text>
     InsertCommentsHere
@@ -2506,6 +2506,12 @@
   </text>
 </comment>
 <comment>
+  <identifier id="android.media.MediaRouter.VolumeCallback"/>
+  <text>
+    InsertCommentsHere
+  </text>
+</comment>
+<comment>
   <identifier id="android.media.MediaSyncEvent"/>
   <text>
     InsertCommentsHere
@@ -4624,6 +4630,18 @@
   </text>
 </comment>
 <comment>
+  <identifier id="android.view.ActionProvider.VisibilityListener"/>
+  <text>
+    InsertCommentsHere
+  </text>
+</comment>
+<comment>
+  <identifier id="android.view.ActionProvider.isVisible_added()"/>
+  <text>
+    InsertCommentsHere
+  </text>
+</comment>
+<comment>
   <identifier id="android.view.ActionProvider.onCreateActionView_added(android.view.MenuItem)"/>
   <text>
     InsertCommentsHere
@@ -4636,6 +4654,24 @@
   </text>
 </comment>
 <comment>
+  <identifier id="android.view.ActionProvider.overridesItemVisibility_added()"/>
+  <text>
+    InsertCommentsHere
+  </text>
+</comment>
+<comment>
+  <identifier id="android.view.ActionProvider.refreshVisibility_added()"/>
+  <text>
+    InsertCommentsHere
+  </text>
+</comment>
+<comment>
+  <identifier id="android.view.ActionProvider.setVisibilityListener_added(android.view.ActionProvider.VisibilityListener)"/>
+  <text>
+    InsertCommentsHere
+  </text>
+</comment>
+<comment>
   <identifier id="android.view.Choreographer"/>
   <text>
     InsertCommentsHere
@@ -6214,12 +6250,30 @@
   </text>
 </comment>
 <comment>
+  <identifier id="android.widget.RemoteViews.setTextViewCompoundDrawablesRelative_added(int, int, int, int, int)"/>
+  <text>
+    InsertCommentsHere
+  </text>
+</comment>
+<comment>
   <identifier id="android.widget.RemoteViews.setTextViewCompoundDrawables_added(int, int, int, int, int)"/>
   <text>
     InsertCommentsHere
   </text>
 </comment>
 <comment>
+  <identifier id="android.widget.RemoteViews.setTextViewTextSize_added(int, int, float)"/>
+  <text>
+    InsertCommentsHere
+  </text>
+</comment>
+<comment>
+  <identifier id="android.widget.RemoteViews.setViewPadding_added(int, int, int, int, int)"/>
+  <text>
+    InsertCommentsHere
+  </text>
+</comment>
+<comment>
   <identifier id="android.widget.SearchView"/>
   <text>
     InsertCommentsHere
diff --git a/docs/html/tools/revisions/platforms.jd b/docs/html/tools/revisions/platforms.jd
index e57c221..db0cbab 100644
--- a/docs/html/tools/revisions/platforms.jd
+++ b/docs/html/tools/revisions/platforms.jd
@@ -48,11 +48,10 @@
 
   <p><a href="#" onclick="return toggleContent(this)">
     <img src="{@docRoot}assets/images/triangle-opened.png"
-class="toggle-content-img" alt="" />
-    Revision 3</a> <em>(March 2012)</em>
-  </a></p>
+class="toggle-content-img" alt="" />Revision 3</a> <em>(March 2012)</em>
+  </p>
 
-  <div class="toggle-content-toggleme" style="padding-left:2em;">
+  <div class="toggle-content-toggleme">
 
     <p>Maintenance update. The system version is 4.0.4.</p>
     <p class="note"><strong>Note:</strong> This system image includes support for emulator
@@ -70,11 +69,10 @@
 
   <p><a href="#" onclick="return toggleContent(this)">
     <img src="{@docRoot}assets/images/triangle-closed.png"
-class="toggle-content-img" alt="" />
-    Revision 2</a> <em>(January 2012)</em>
-  </a></p>
+class="toggle-content-img" alt="" />Revision 2</a> <em>(January 2012)</em>
+  </p>
 
-  <div class="toggle-content-toggleme" style="padding-left:2em;">
+  <div class="toggle-content-toggleme">
 
     <p>Maintenance update. The system version is 4.0.3.</p>
     <dl>
@@ -89,11 +87,10 @@
 
   <p><a href="#" onclick="return toggleContent(this)">
     <img src="{@docRoot}assets/images/triangle-closed.png"
-class="toggle-content-img" alt="" />
-    Revision 1</a> <em>(December 2011)</em>
-  </a></p>
+class="toggle-content-img" alt="" />Revision 1</a> <em>(December 2011)</em>
+  </p>
 
-  <div class="toggle-content-toggleme" style="padding-left:2em;">
+  <div class="toggle-content-toggleme">
 
     <p>Initial release. The system version is 4.0.3.</p>
     <dl>
@@ -169,11 +166,10 @@
 
   <p><a href="#" onclick="return toggleContent(this)">
     <img src="{@docRoot}assets/images/triangle-closed.png"
-class="toggle-content-img" alt="" />
-    Android 4.0, Revision 2</a> <em>(December 2011)</em>
-  </a></p>
+class="toggle-content-img" alt="" />Android 4.0, Revision 2</a> <em>(December 2011)</em>
+  </p>
 
-  <div class="toggle-content-toggleme" style="padding-left:2em;">
+  <div class="toggle-content-toggleme">
     <p>Maintenance update. The system version is 4.0.2.</p>
     <dl>
       <dt>Dependencies:</dt>
@@ -186,11 +182,10 @@
 
   <p><a href="#" onclick="return toggleContent(this)">
     <img src="{@docRoot}assets/images/triangle-closed.png"
-class="toggle-content-img" alt="" />
-    Android 4.0, Revision 1</a> <em>(October 2011)</em>
-  </a></p>
+class="toggle-content-img" alt="" />Android 4.0, Revision 1</a> <em>(October 2011)</em>
+  </p>
 
-  <div class="toggle-content-toggleme" style="padding-left:2em;">
+  <div class="toggle-content-toggleme">
     <p>Initial release. The system version is 4.0.1.</p>
     <dl>
       <dt>Dependencies:</dt>
@@ -264,11 +259,10 @@
 
   <p><a href="#" onclick="return toggleContent(this)">
     <img src="{@docRoot}assets/images/triangle-closed.png"
-class="toggle-content-img" alt="" />
-    Android 3.2, Revision 1</a> <em>(July 2011)</em>
-  </a></p>
+class="toggle-content-img" alt="" />Android 3.2, Revision 1</a> <em>(July 2011)</em>
+  </p>
 
-  <div class="toggle-content-toggleme" style="padding-left:2em;">
+  <div class="toggle-content-toggleme">
 
 <dl>
 <dt>Initial release. SDK Tools r12 or higher is recommended.</dt>
@@ -319,11 +313,10 @@
 
 <p><a href="#" onclick="return toggleContent(this)">
   <img src="{@docRoot}assets/images/triangle-closed.png"
-class="toggle-content-img" alt="" />
-  Android 3.1, Revision 3</a> <em>(July 2011)</em>
-</a></p>
+class="toggle-content-img" alt="" />Android 3.1, Revision 3</a> <em>(July 2011)</em>
+</p>
 
-<div class="toggle-content-toggleme" style="padding-left:2em;">
+<div class="toggle-content-toggleme">
 
 <dl>
 <dt>Dependencies:</dt>
@@ -348,11 +341,10 @@
 
 <p><a href="#" onclick="return toggleContent(this)">
   <img src="{@docRoot}assets/images/triangle-closed.png"
-class="toggle-content-img" alt="" />
-  Android 3.1, Revision 2</a> <em>(May 2011)</em>
-</a></p>
+class="toggle-content-img" alt="" />Android 3.1, Revision 2</a> <em>(May 2011)</em>
+</p>
 
-<div class="toggle-content-toggleme" style="padding-left:2em;">
+<div class="toggle-content-toggleme">
 
 <dl>
 <dt>Dependencies:</dt>
@@ -375,11 +367,10 @@
 
 <p><a href="#" onclick="return toggleContent(this)">
   <img src="{@docRoot}assets/images/triangle-closed.png"
-class="toggle-content-img" alt="" />
-  Android 3.1, Revision 1</a> <em>(May 2011)</em>
-</a></p>
+class="toggle-content-img" alt="" />Android 3.1, Revision 1</a> <em>(May 2011)</em>
+</p>
 
-<div class="toggle-content-toggleme" style="padding-left:2em;">
+<div class="toggle-content-toggleme">
 
 <dl>
 <dt>Dependencies:</dt>
@@ -425,11 +416,10 @@
 
 <p><a href="#" onclick="return toggleContent(this)">
   <img src="{@docRoot}assets/images/triangle-closed.png"
-class="toggle-content-img" alt="" />
-  Android 3.0, Revision 2</a> <em>(July 2011)</em>
-</a></p>
+class="toggle-content-img" alt="" />Android 3.0, Revision 2</a> <em>(July 2011)</em>
+</p>
 
-<div class="toggle-content-toggleme" style="padding-left:2em;">
+<div class="toggle-content-toggleme">
 
 <dl>
 <dt>Dependencies:</dt>
@@ -452,11 +442,11 @@
 <div class="toggle-content closed">
 
 <p><a href="#" onclick="return toggleContent(this)">
-  <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img" alt="" />
-  Android 3.0, Revision 1</a> <em>(February 2011)</em>
-</a></p>
+  <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img" 
+       alt="" />Android 3.0, Revision 1</a> <em>(February 2011)</em>
+</p>
 
-<div class="toggle-content-toggleme" style="padding-left:2em;">
+<div class="toggle-content-toggleme">
     
 <dl>
 <dt>Dependencies:</dt>
@@ -510,11 +500,11 @@
 <div class="toggle-content closed" >
 
 <p><a href="#" onclick="return toggleContent(this)">
-  <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img" alt="" />
-        Android 2.3.4, Revision 1</a> <em>(May 2011)</em>
-</a></p>
+  <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img" 
+       alt="" />Android 2.3.4, Revision 1</a> <em>(May 2011)</em>
+</p>
 
-  <div class="toggle-content-toggleme" style="padding-left:2em;">
+  <div class="toggle-content-toggleme">
     <dl>
       <dt>Dependencies:</dt>
       <dd>
@@ -571,11 +561,10 @@
 
 <p><a href="#" onclick="return toggleContent(this)">
   <img src="{@docRoot}assets/images/triangle-closed.png"
-class="toggle-content-img" alt="" />
-  Android 2.3.3, Revision 2</a> <em>(July 2011)</em>
-</a></p>
+class="toggle-content-img" alt="" />Android 2.3.3, Revision 2</a> <em>(July 2011)</em>
+</p>
 
-<div class="toggle-content-toggleme" style="padding-left:2em;">
+<div class="toggle-content-toggleme">
 
 <dl>
 <dt>Dependencies:</dt>
@@ -599,11 +588,10 @@
 
 <p><a href="#" onclick="return toggleContent(this)">
   <img src="{@docRoot}assets/images/triangle-closed.png"
-class="toggle-content-img" alt="" />
-  Android 2.3.3, Revision 1</a> <em>(February 2011)</em>
-</a></p>
+class="toggle-content-img" alt="" />Android 2.3.3, Revision 1</a> <em>(February 2011)</em>
+</p>
 
-<div class="toggle-content-toggleme" style="padding-left:2em;">
+<div class="toggle-content-toggleme">
 <dl>
 <dt>Dependencies:</dt>
 <dd>
@@ -667,11 +655,11 @@
 <div class="toggle-content closed" >
 
 <p><a href="#" onclick="return toggleContent(this)">
-  <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img" alt="" />
-        Android 2.3, Revision 1</a> <em>(December 2010)</em>
-</a></p>
+  <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img" 
+       alt="" />Android 2.3, Revision 1</a> <em>(December 2010)</em>
+</p>
 
-  <div class="toggle-content-toggleme" style="padding-left:2em;">
+  <div class="toggle-content-toggleme">
     <dl>
       <dt>Dependencies:</dt>
       <dd>
@@ -724,11 +712,10 @@
 
 <p><a href="#" onclick="return toggleContent(this)">
   <img src="{@docRoot}assets/images/triangle-closed.png"
-class="toggle-content-img" alt="" />
-  Android {@sdkPlatformVersion}, Revision 3</a> <em>(July 2011)</em>
-</a></p>
+class="toggle-content-img" alt="" />Android {@sdkPlatformVersion}, Revision 3</a> <em>(July 2011)</em>
+</p>
 
-<div class="toggle-content-toggleme" style="padding-left:2em;">
+<div class="toggle-content-toggleme">
 
 <dl>
 <dt>Dependencies:</dt>
@@ -752,11 +739,10 @@
 
 <p><a href="#" onclick="return toggleContent(this)">
   <img src="{@docRoot}assets/images/triangle-closed.png"
-class="toggle-content-img" alt="" />
-  Android {@sdkPlatformVersion}, Revision 2</a> <em>(July 2010)</em>
-</a></p>
+class="toggle-content-img" alt="" />Android {@sdkPlatformVersion}, Revision 2</a> <em>(July 2010)</em>
+</p>
 
-<div class="toggle-content-toggleme" style="padding-left:2em;">
+<div class="toggle-content-toggleme">
 <dt>Dependencies:</dt>
 <dd>
 <p>Requires SDK Tools r6 or higher.</p>
@@ -781,11 +767,9 @@
 
 <p><a href="#" onclick="return toggleContent(this)">
   <img src="{@docRoot}assets/images/triangle-closed.png"
-class="toggle-content-img" alt="" />
-  Android {@sdkPlatformVersion}, Revision 1</a> <em>(May 2010)</em>
-</a></p>
+class="toggle-content-img" alt="" />Android {@sdkPlatformVersion}, Revision 1</a> <em>(May 2010)</em></p>
 
-<div class="toggle-content-toggleme" style="padding-left:2em;">
+<div class="toggle-content-toggleme">
 <dl>
 <dt>Dependencies:</dt>
 <dd>
diff --git a/libs/hwui/Android.mk b/libs/hwui/Android.mk
index 5ec3983..265e12f 100644
--- a/libs/hwui/Android.mk
+++ b/libs/hwui/Android.mk
@@ -41,6 +41,8 @@
 
 	LOCAL_CFLAGS += -DUSE_OPENGL_RENDERER -DGL_GLEXT_PROTOTYPES
 	LOCAL_CFLAGS += -fvisibility=hidden
+	# Uncomment the following line to use `perf`
+	# LOCAL_CFLAGS +=  -fno-omit-frame-pointer -marm -mapcs
 	LOCAL_MODULE_CLASS := SHARED_LIBRARIES
 	LOCAL_SHARED_LIBRARIES := libcutils libutils libGLESv2 libskia libui
 	LOCAL_MODULE := libhwui
diff --git a/libs/hwui/Caches.cpp b/libs/hwui/Caches.cpp
index f210820..56eb317 100644
--- a/libs/hwui/Caches.cpp
+++ b/libs/hwui/Caches.cpp
@@ -49,6 +49,7 @@
 
 Caches::Caches(): Singleton<Caches>(), mInitialized(false) {
     init();
+    initFont();
     initExtensions();
     initConstraints();
 
@@ -74,6 +75,8 @@
 
     mTexCoordsArrayEnabled = false;
 
+    glDisable(GL_SCISSOR_TEST);
+    scissorEnabled = false;
     mScissorX = mScissorY = mScissorWidth = mScissorHeight = 0;
 
     glActiveTexture(gTextureUnits[0]);
@@ -89,6 +92,10 @@
     mInitialized = true;
 }
 
+void Caches::initFont() {
+    fontRenderer = GammaFontRenderer::createRenderer();
+}
+
 void Caches::initExtensions() {
     if (extensions.hasDebugMarker()) {
         eventMark = glInsertEventMarkerEXT;
@@ -169,8 +176,8 @@
             arcShapeCache.getSize(), arcShapeCache.getMaxSize());
     log.appendFormat("  TextDropShadowCache  %8d / %8d\n", dropShadowCache.getSize(),
             dropShadowCache.getMaxSize());
-    for (uint32_t i = 0; i < fontRenderer.getFontRendererCount(); i++) {
-        const uint32_t size = fontRenderer.getFontRendererSize(i);
+    for (uint32_t i = 0; i < fontRenderer->getFontRendererCount(); i++) {
+        const uint32_t size = fontRenderer->getFontRendererSize(i);
         log.appendFormat("  FontRenderer %d       %8d / %8d\n", i, size, size);
     }
     log.appendFormat("Other:\n");
@@ -190,8 +197,8 @@
     total += ovalShapeCache.getSize();
     total += rectShapeCache.getSize();
     total += arcShapeCache.getSize();
-    for (uint32_t i = 0; i < fontRenderer.getFontRendererCount(); i++) {
-        total += fontRenderer.getFontRendererSize(i);
+    for (uint32_t i = 0; i < fontRenderer->getFontRendererCount(); i++) {
+        total += fontRenderer->getFontRendererSize(i);
     }
 
     log.appendFormat("Total memory usage:\n");
@@ -244,10 +251,10 @@
             patchCache.clear();
             dropShadowCache.clear();
             gradientCache.clear();
-            fontRenderer.clear();
+            fontRenderer->clear();
             // fall through
         case kFlushMode_Moderate:
-            fontRenderer.flush();
+            fontRenderer->flush();
             textureCache.flush();
             pathCache.clear();
             roundRectShapeCache.clear();
@@ -352,7 +359,9 @@
 }
 
 void Caches::setScissor(GLint x, GLint y, GLint width, GLint height) {
-    if (x != mScissorX || y != mScissorY || width != mScissorWidth || height != mScissorHeight) {
+    if (scissorEnabled && (x != mScissorX || y != mScissorY ||
+            width != mScissorWidth || height != mScissorHeight)) {
+
         glScissor(x, y, width, height);
 
         mScissorX = x;
@@ -362,6 +371,28 @@
     }
 }
 
+void Caches::enableScissor() {
+    if (!scissorEnabled) {
+        glEnable(GL_SCISSOR_TEST);
+        scissorEnabled = true;
+    }
+}
+
+void Caches::disableScissor() {
+    if (scissorEnabled) {
+        glDisable(GL_SCISSOR_TEST);
+        scissorEnabled = false;
+    }
+}
+
+void Caches::setScissorEnabled(bool enabled) {
+    if (scissorEnabled != enabled) {
+        if (enabled) glEnable(GL_SCISSOR_TEST);
+        else glDisable(GL_SCISSOR_TEST);
+        scissorEnabled = enabled;
+    }
+}
+
 void Caches::resetScissor() {
     mScissorX = mScissorY = mScissorWidth = mScissorHeight = 0;
 }
diff --git a/libs/hwui/Caches.h b/libs/hwui/Caches.h
index 58361c9..5e09d94 100644
--- a/libs/hwui/Caches.h
+++ b/libs/hwui/Caches.h
@@ -204,6 +204,10 @@
      */
     void resetScissor();
 
+    void enableScissor();
+    void disableScissor();
+    void setScissorEnabled(bool enabled);
+
     /**
      * Returns the mesh used to draw regions. Calling this method will
      * bind a VBO of type GL_ELEMENT_ARRAY_BUFFER that contains the
@@ -221,6 +225,7 @@
     GLenum lastSrcMode;
     GLenum lastDstMode;
     Program* currentProgram;
+    bool scissorEnabled;
 
     // VBO to draw with
     GLuint meshBuffer;
@@ -244,9 +249,10 @@
     PatchCache patchCache;
     TextDropShadowCache dropShadowCache;
     FboCache fboCache;
-    GammaFontRenderer fontRenderer;
     ResourceCache resourceCache;
 
+    GammaFontRenderer* fontRenderer;
+
     // Debug methods
     PFNGLINSERTEVENTMARKEREXTPROC eventMark;
     PFNGLPUSHGROUPMARKEREXTPROC startMark;
@@ -256,6 +262,7 @@
     PFNGLGETOBJECTLABELEXTPROC getLabel;
 
 private:
+    void initFont();
     void initExtensions();
     void initConstraints();
 
diff --git a/libs/hwui/DisplayListRenderer.cpp b/libs/hwui/DisplayListRenderer.cpp
index d376e3a..841a35b 100644
--- a/libs/hwui/DisplayListRenderer.cpp
+++ b/libs/hwui/DisplayListRenderer.cpp
@@ -486,7 +486,8 @@
                 float top = getFloat();
                 float right = getFloat();
                 float bottom = getFloat();
-                SkPaint* paint = getPaint(renderer);
+                int alpha = getInt();
+                SkXfermode::Mode mode = (SkXfermode::Mode) getInt();
                 ALOGD("%s%s %.2f, %.2f, %.2f, %.2f", (char*) indent, OP_NAMES[op],
                         left, top, right, bottom);
             }
@@ -1089,11 +1090,14 @@
                 float top = getFloat();
                 float right = getFloat();
                 float bottom = getFloat();
-                SkPaint* paint = getPaint(renderer);
+
+                int alpha = getInt();
+                SkXfermode::Mode mode = (SkXfermode::Mode) getInt();
 
                 DISPLAY_LIST_LOGD("%s%s", (char*) indent, OP_NAMES[op]);
                 drawGlStatus |= renderer.drawPatch(bitmap, xDivs, yDivs, colors,
-                        xDivsCount, yDivsCount, numColors, left, top, right, bottom, paint);
+                        xDivsCount, yDivsCount, numColors, left, top, right, bottom,
+                        alpha, mode);
             }
             break;
             case DrawColor: {
@@ -1570,6 +1574,10 @@
 status_t DisplayListRenderer::drawPatch(SkBitmap* bitmap, const int32_t* xDivs,
         const int32_t* yDivs, const uint32_t* colors, uint32_t width, uint32_t height,
         int8_t numColors, float left, float top, float right, float bottom, SkPaint* paint) {
+    int alpha;
+    SkXfermode::Mode mode;
+    OpenGLRenderer::getAlphaAndModeDirect(paint, &alpha, &mode);
+
     const bool reject = quickReject(left, top, right, bottom);
     uint32_t* location = addOp(DisplayList::DrawPatch, reject);
     addBitmap(bitmap);
@@ -1577,7 +1585,8 @@
     addInts(yDivs, height);
     addUInts(colors, numColors);
     addBounds(left, top, right, bottom);
-    addPaint(paint);
+    addInt(alpha);
+    addInt(mode);
     addSkip(location);
     return DrawGlInfo::kStatusDone;
 }
diff --git a/libs/hwui/FontRenderer.cpp b/libs/hwui/FontRenderer.cpp
index 0d6e62a..3b3691c 100644
--- a/libs/hwui/FontRenderer.cpp
+++ b/libs/hwui/FontRenderer.cpp
@@ -677,10 +677,19 @@
     unsigned int stride = glyph.rowBytes();
 
     uint32_t cacheX = 0, bX = 0, cacheY = 0, bY = 0;
-    for (cacheX = startX, bX = 0; cacheX < endX; cacheX++, bX++) {
-        for (cacheY = startY, bY = 0; cacheY < endY; cacheY++, bY++) {
-            uint8_t tempCol = bitmapBuffer[bY * stride + bX];
-            cacheBuffer[cacheY * cacheWidth + cacheX] = mGammaTable[tempCol];
+    if (mGammaTable) {
+        for (cacheX = startX, bX = 0; cacheX < endX; cacheX++, bX++) {
+            for (cacheY = startY, bY = 0; cacheY < endY; cacheY++, bY++) {
+                uint8_t tempCol = bitmapBuffer[bY * stride + bX];
+                cacheBuffer[cacheY * cacheWidth + cacheX] = mGammaTable[tempCol];
+            }
+        }
+    } else {
+        for (cacheX = startX, bX = 0; cacheX < endX; cacheX++, bX++) {
+            for (cacheY = startY, bY = 0; cacheY < endY; cacheY++, bY++) {
+                uint8_t tempCol = bitmapBuffer[bY * stride + bX];
+                cacheBuffer[cacheY * cacheWidth + cacheX] = tempCol;
+            }
         }
     }
 
diff --git a/libs/hwui/GammaFontRenderer.cpp b/libs/hwui/GammaFontRenderer.cpp
index 1be957f..75d5b10 100644
--- a/libs/hwui/GammaFontRenderer.cpp
+++ b/libs/hwui/GammaFontRenderer.cpp
@@ -24,20 +24,30 @@
 namespace uirenderer {
 
 ///////////////////////////////////////////////////////////////////////////////
-// Constructors/destructor
+// Base class GammaFontRenderer
 ///////////////////////////////////////////////////////////////////////////////
 
-GammaFontRenderer::GammaFontRenderer() {
-    INIT_LOGD("Creating gamma font renderer");
+GammaFontRenderer* GammaFontRenderer::createRenderer() {
+    // Choose the best renderer
+    char property[PROPERTY_VALUE_MAX];
+    if (property_get(PROPERTY_TEXT_GAMMA_SHADER, property, DEFAULT_TEXT_GAMMA_SHADER) > 0) {
+        if (!strcasecmp(property, "true")) {
+            return new ShaderGammaFontRenderer();
+        }
+    }
 
+    return new LookupGammaFontRenderer();
+}
+
+GammaFontRenderer::GammaFontRenderer() {
     // Get the renderer properties
     char property[PROPERTY_VALUE_MAX];
 
     // Get the gamma
-    float gamma = DEFAULT_TEXT_GAMMA;
+    mGamma = DEFAULT_TEXT_GAMMA;
     if (property_get(PROPERTY_TEXT_GAMMA, property, NULL) > 0) {
         INIT_LOGD("  Setting text gamma to %s", property);
-        gamma = atof(property);
+        mGamma = atof(property);
     } else {
         INIT_LOGD("  Using default text gamma of %.2f", DEFAULT_TEXT_GAMMA);
     }
@@ -61,10 +71,29 @@
         INIT_LOGD("  Using default white black gamma threshold of %d",
                 DEFAULT_TEXT_WHITE_GAMMA_THRESHOLD);
     }
+}
+
+GammaFontRenderer::~GammaFontRenderer() {
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// Shader-based renderer
+///////////////////////////////////////////////////////////////////////////////
+
+ShaderGammaFontRenderer::ShaderGammaFontRenderer(): GammaFontRenderer() {
+    INIT_LOGD("Creating shader gamma font renderer");
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// Lookup-based renderer
+///////////////////////////////////////////////////////////////////////////////
+
+LookupGammaFontRenderer::LookupGammaFontRenderer(): GammaFontRenderer() {
+    INIT_LOGD("Creating lookup gamma font renderer");
 
     // Compute the gamma tables
-    const float blackGamma = gamma;
-    const float whiteGamma = 1.0f / gamma;
+    const float blackGamma = mGamma;
+    const float whiteGamma = 1.0f / mGamma;
 
     for (uint32_t i = 0; i <= 255; i++) {
         mGammaTable[i] = i;
@@ -81,20 +110,20 @@
     memset(mRenderersUsageCount, 0, sizeof(uint32_t) * kGammaCount);
 }
 
-GammaFontRenderer::~GammaFontRenderer() {
+LookupGammaFontRenderer::~LookupGammaFontRenderer() {
     for (int i = 0; i < kGammaCount; i++) {
         delete mRenderers[i];
     }
 }
 
-void GammaFontRenderer::clear() {
+void LookupGammaFontRenderer::clear() {
     for (int i = 0; i < kGammaCount; i++) {
         delete mRenderers[i];
         mRenderers[i] = NULL;
     }
 }
 
-void GammaFontRenderer::flush() {
+void LookupGammaFontRenderer::flush() {
     int count = 0;
     int min = -1;
     uint32_t minCount = UINT_MAX;
@@ -122,7 +151,7 @@
     }
 }
 
-FontRenderer* GammaFontRenderer::getRenderer(Gamma gamma) {
+FontRenderer* LookupGammaFontRenderer::getRenderer(Gamma gamma) {
     FontRenderer* renderer = mRenderers[gamma];
     if (!renderer) {
         renderer = new FontRenderer();
@@ -133,7 +162,7 @@
     return renderer;
 }
 
-FontRenderer& GammaFontRenderer::getFontRenderer(const SkPaint* paint) {
+FontRenderer& LookupGammaFontRenderer::getFontRenderer(const SkPaint* paint) {
     if (paint->getShader() == NULL) {
         uint32_t c = paint->getColor();
         const int r = (c >> 16) & 0xFF;
diff --git a/libs/hwui/GammaFontRenderer.h b/libs/hwui/GammaFontRenderer.h
index 99f08f0..988947a 100644
--- a/libs/hwui/GammaFontRenderer.h
+++ b/libs/hwui/GammaFontRenderer.h
@@ -24,16 +24,72 @@
 namespace android {
 namespace uirenderer {
 
-struct GammaFontRenderer {
-    GammaFontRenderer();
-    ~GammaFontRenderer();
+class GammaFontRenderer {
+public:
+    virtual ~GammaFontRenderer();
 
-    enum Gamma {
-        kGammaDefault = 0,
-        kGammaBlack = 1,
-        kGammaWhite = 2,
-        kGammaCount = 3
-    };
+    virtual void clear() = 0;
+    virtual void flush() = 0;
+
+    virtual FontRenderer& getFontRenderer(const SkPaint* paint) = 0;
+
+    virtual uint32_t getFontRendererCount() const = 0;
+
+    virtual uint32_t getFontRendererSize(uint32_t fontRenderer) const = 0;
+
+    static GammaFontRenderer* createRenderer();
+
+protected:
+    GammaFontRenderer();
+
+    int mBlackThreshold;
+    int mWhiteThreshold;
+
+    float mGamma;
+};
+
+class ShaderGammaFontRenderer: public GammaFontRenderer {
+public:
+    ~ShaderGammaFontRenderer() {
+        delete mRenderer;
+    }
+
+    void clear() {
+        delete mRenderer;
+    }
+
+    void flush() {
+        if (mRenderer) {
+            mRenderer->flushLargeCaches();
+        }
+    }
+
+    FontRenderer& getFontRenderer(const SkPaint* paint) {
+        if (!mRenderer) {
+            mRenderer = new FontRenderer;
+        }
+        return *mRenderer;
+    }
+
+    uint32_t getFontRendererCount() const {
+        return 1;
+    }
+
+    uint32_t getFontRendererSize(uint32_t fontRenderer) const {
+        return mRenderer->getCacheSize();
+    }
+
+private:
+    ShaderGammaFontRenderer();
+
+    FontRenderer* mRenderer;
+
+    friend class GammaFontRenderer;
+};
+
+class LookupGammaFontRenderer: public GammaFontRenderer {
+public:
+    ~LookupGammaFontRenderer();
 
     void clear();
     void flush();
@@ -54,15 +110,23 @@
     }
 
 private:
+    LookupGammaFontRenderer();
+
+    enum Gamma {
+        kGammaDefault = 0,
+        kGammaBlack = 1,
+        kGammaWhite = 2,
+        kGammaCount = 3
+    };
+
     FontRenderer* getRenderer(Gamma gamma);
 
     uint32_t mRenderersUsageCount[kGammaCount];
     FontRenderer* mRenderers[kGammaCount];
 
-    int mBlackThreshold;
-    int mWhiteThreshold;
-
     uint8_t mGammaTable[256 * kGammaCount];
+
+    friend class GammaFontRenderer;
 };
 
 }; // namespace uirenderer
diff --git a/libs/hwui/LayerRenderer.cpp b/libs/hwui/LayerRenderer.cpp
index 65f8c7c..41a5f0d 100644
--- a/libs/hwui/LayerRenderer.cpp
+++ b/libs/hwui/LayerRenderer.cpp
@@ -233,9 +233,8 @@
     glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
             layer->getTexture(), 0);
 
-    glDisable(GL_SCISSOR_TEST);
+    caches.disableScissor();
     glClear(GL_COLOR_BUFFER_BIT);
-    glEnable(GL_SCISSOR_TEST);
 
     glBindFramebuffer(GL_FRAMEBUFFER, previousFbo);
 
@@ -431,7 +430,7 @@
             renderer.OpenGLRenderer::prepareDirty(0.0f, 0.0f,
                     bitmap->width(), bitmap->height(), !layer->isBlend());
 
-            glDisable(GL_SCISSOR_TEST);
+            caches.disableScissor();
             renderer.translate(0.0f, bitmap->height());
             renderer.scale(1.0f, -1.0f);
 
@@ -460,8 +459,6 @@
         }
 
 error:
-        glEnable(GL_SCISSOR_TEST);
-
 #if DEBUG_OPENGL
         if (error != GL_NO_ERROR) {
             ALOGD("GL error while copying layer into bitmap = 0x%x", error);
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index a755320..99016d6 100644
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -157,7 +157,6 @@
     mFirstSnapshot->viewport.set(0, 0, width, height);
 
     glDisable(GL_DITHER);
-    glEnable(GL_SCISSOR_TEST);
     glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
 
     glEnableVertexAttribArray(Program::kBindingPosition);
@@ -181,6 +180,7 @@
     syncState();
 
     if (!opaque) {
+        mCaches.enableScissor();
         mCaches.setScissor(left, mSnapshot->height - bottom, right - left, bottom - top);
         glClear(GL_COLOR_BUFFER_BIT);
         return DrawGlInfo::kStatusDrew;
@@ -250,7 +250,7 @@
     glViewport(0, 0, snapshot->viewport.getWidth(), snapshot->viewport.getHeight());
     glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
 
-    glEnable(GL_SCISSOR_TEST);
+    mCaches.enableScissor();
     mCaches.resetScissor();
     dirtyClip();
 
@@ -651,6 +651,7 @@
 #endif
 
     // Clear the FBO, expand the clear region by 1 to get nice bilinear filtering
+    mCaches.enableScissor();
     mCaches.setScissor(clip.left - 1.0f, bounds.getHeight() - clip.bottom - 1.0f,
             clip.getWidth() + 2.0f, clip.getHeight() + 2.0f);
     glClear(GL_COLOR_BUFFER_BIT);
@@ -981,7 +982,7 @@
         // The list contains bounds that have already been clipped
         // against their initial clip rect, and the current clip
         // is likely different so we need to disable clipping here
-        glDisable(GL_SCISSOR_TEST);
+        mCaches.disableScissor();
 
         Vertex mesh[count * 6];
         Vertex* vertex = mesh;
@@ -1008,8 +1009,6 @@
         setupDrawVertices(&mesh[0].position[0]);
 
         glDrawArrays(GL_TRIANGLES, 0, count * 6);
-
-        glEnable(GL_SCISSOR_TEST);
     } else {
         for (uint32_t i = 0; i < count; i++) {
             delete mLayers.itemAt(i);
@@ -1088,7 +1087,12 @@
     Rect clipRect(*mSnapshot->clipRect);
     clipRect.snapToPixelBoundaries();
 
-    return !clipRect.intersects(r);
+    bool rejected = !clipRect.intersects(r);
+    if (!isDeferred() && !rejected) {
+        mCaches.setScissorEnabled(!clipRect.contains(r));
+    }
+
+    return rejected;
 }
 
 bool OpenGLRenderer::clipRect(float left, float top, float right, float bottom, SkRegion::Op op) {
@@ -1148,7 +1152,6 @@
 
 void OpenGLRenderer::setupDrawColor(int color, int alpha) {
     mColorA = alpha / 255.0f;
-    mColorA *= mSnapshot->alpha;
     // Second divide of a by 255 is an optimization, allowing us to simply multiply
     // the rgb values by a instead of also dividing by 255
     const float a = mColorA / 255.0f;
@@ -1180,15 +1183,6 @@
     mSetShaderColor = mDescription.setColor(r, g, b, a);
 }
 
-void OpenGLRenderer::setupDrawAlpha8Color(float r, float g, float b, float a) {
-    mColorA = a;
-    mColorR = r;
-    mColorG = g;
-    mColorB = b;
-    mColorSet = true;
-    mSetShaderColor = mDescription.setAlpha8Color(r, g, b, a);
-}
-
 void OpenGLRenderer::setupDrawShader() {
     if (mShader) {
         mShader->describe(mDescription, mCaches.extensions);
@@ -1683,10 +1677,23 @@
 status_t OpenGLRenderer::drawPatch(SkBitmap* bitmap, const int32_t* xDivs, const int32_t* yDivs,
         const uint32_t* colors, uint32_t width, uint32_t height, int8_t numColors,
         float left, float top, float right, float bottom, SkPaint* paint) {
+    int alpha;
+    SkXfermode::Mode mode;
+    getAlphaAndModeDirect(paint, &alpha, &mode);
+
+    return drawPatch(bitmap, xDivs, yDivs, colors, width, height, numColors,
+            left, top, right, bottom, alpha, mode);
+}
+
+status_t OpenGLRenderer::drawPatch(SkBitmap* bitmap, const int32_t* xDivs, const int32_t* yDivs,
+        const uint32_t* colors, uint32_t width, uint32_t height, int8_t numColors,
+        float left, float top, float right, float bottom, int alpha, SkXfermode::Mode mode) {
     if (quickReject(left, top, right, bottom)) {
         return DrawGlInfo::kStatusDone;
     }
 
+    alpha *= mSnapshot->alpha;
+
     mCaches.activeTexture(0);
     Texture* texture = mCaches.textureCache.get(bitmap);
     if (!texture) return DrawGlInfo::kStatusDone;
@@ -1694,10 +1701,6 @@
     texture->setWrap(GL_CLAMP_TO_EDGE, true);
     texture->setFilter(GL_LINEAR, true);
 
-    int alpha;
-    SkXfermode::Mode mode;
-    getAlphaAndMode(paint, &alpha, &mode);
-
     const Patch* mesh = mCaches.patchCache.get(bitmap->width(), bitmap->height(),
             right - left, bottom - top, xDivs, yDivs, colors, width, height, numColors);
 
@@ -1770,7 +1773,7 @@
     setupDraw();
     setupDrawNoTexture();
     setupDrawAALine();
-    setupDrawColor(color);
+    setupDrawColor(color, ((color >> 24) & 0xFF) * mSnapshot->alpha);
     setupDrawColorFilter();
     setupDrawShader();
     setupDrawBlending(true, mode);
@@ -2266,7 +2269,7 @@
 status_t OpenGLRenderer::drawPosText(const char* text, int bytesCount, int count,
         const float* positions, SkPaint* paint) {
     if (text == NULL || count == 0 || mSnapshot->isIgnored() ||
-            (paint->getAlpha() == 0 && paint->getXfermode() == NULL)) {
+            (paint->getAlpha() * mSnapshot->alpha == 0 && paint->getXfermode() == NULL)) {
         return DrawGlInfo::kStatusDone;
     }
 
@@ -2283,7 +2286,7 @@
         y = (int) floorf(y + mSnapshot->transform->getTranslateY() + 0.5f);
     }
 
-    FontRenderer& fontRenderer = mCaches.fontRenderer.getFontRenderer(paint);
+    FontRenderer& fontRenderer = mCaches.fontRenderer->getFontRenderer(paint);
     fontRenderer.setFont(paint, SkTypeface::UniqueID(paint->getTypeface()),
             paint->getTextSize());
 
@@ -2339,7 +2342,7 @@
 status_t OpenGLRenderer::drawText(const char* text, int bytesCount, int count,
         float x, float y, SkPaint* paint, float length) {
     if (text == NULL || count == 0 || mSnapshot->isIgnored() ||
-            (paint->getAlpha() == 0 && paint->getXfermode() == NULL)) {
+            (paint->getAlpha() * mSnapshot->alpha == 0 && paint->getXfermode() == NULL)) {
         return DrawGlInfo::kStatusDone;
     }
 
@@ -2373,7 +2376,7 @@
     ALOGD("OpenGLRenderer drawText() with FontID=%d", SkTypeface::UniqueID(paint->getTypeface()));
 #endif
 
-    FontRenderer& fontRenderer = mCaches.fontRenderer.getFontRenderer(paint);
+    FontRenderer& fontRenderer = mCaches.fontRenderer->getFontRenderer(paint);
     fontRenderer.setFont(paint, SkTypeface::UniqueID(paint->getTypeface()),
             paint->getTextSize());
 
@@ -2392,7 +2395,7 @@
         const float sx = oldX - shadow->left + mShadowDx;
         const float sy = oldY - shadow->top + mShadowDy;
 
-        const int shadowAlpha = ((mShadowColor >> 24) & 0xFF);
+        const int shadowAlpha = ((mShadowColor >> 24) & 0xFF) * mSnapshot->alpha;
         int shadowColor = mShadowColor;
         if (mShader) {
             shadowColor = 0xffffffff;
@@ -2472,7 +2475,7 @@
         return DrawGlInfo::kStatusDone;
     }
 
-    FontRenderer& fontRenderer = mCaches.fontRenderer.getFontRenderer(paint);
+    FontRenderer& fontRenderer = mCaches.fontRenderer->getFontRenderer(paint);
     fontRenderer.setFont(paint, SkTypeface::UniqueID(paint->getTypeface()),
             paint->getTextSize());
 
@@ -2791,7 +2794,7 @@
 
     setupDraw();
     setupDrawNoTexture();
-    setupDrawColor(color);
+    setupDrawColor(color, ((color >> 24) & 0xFF) * mSnapshot->alpha);
     setupDrawShader();
     setupDrawColorFilter();
     setupDrawBlending(mode);
@@ -2927,30 +2930,9 @@
 }
 
 void OpenGLRenderer::getAlphaAndMode(SkPaint* paint, int* alpha, SkXfermode::Mode* mode) {
-    if (paint) {
-        *mode = getXfermode(paint->getXfermode());
-
-        // Skia draws using the color's alpha channel if < 255
-        // Otherwise, it uses the paint's alpha
-        int color = paint->getColor();
-        *alpha = (color >> 24) & 0xFF;
-        if (*alpha == 255) {
-            *alpha = paint->getAlpha();
-        }
-    } else {
-        *mode = SkXfermode::kSrcOver_Mode;
-        *alpha = 255;
-    }
+    getAlphaAndModeDirect(paint, alpha,  mode);
     *alpha *= mSnapshot->alpha;
 }
 
-SkXfermode::Mode OpenGLRenderer::getXfermode(SkXfermode* mode) {
-    SkXfermode::Mode resultMode;
-    if (!SkXfermode::AsMode(mode, &resultMode)) {
-        resultMode = SkXfermode::kSrcOver_Mode;
-    }
-    return resultMode;
-}
-
 }; // namespace uirenderer
 }; // namespace android
diff --git a/libs/hwui/OpenGLRenderer.h b/libs/hwui/OpenGLRenderer.h
index b342f50..8bdc450 100644
--- a/libs/hwui/OpenGLRenderer.h
+++ b/libs/hwui/OpenGLRenderer.h
@@ -123,6 +123,9 @@
     virtual status_t drawPatch(SkBitmap* bitmap, const int32_t* xDivs, const int32_t* yDivs,
             const uint32_t* colors, uint32_t width, uint32_t height, int8_t numColors,
             float left, float top, float right, float bottom, SkPaint* paint);
+    status_t drawPatch(SkBitmap* bitmap, const int32_t* xDivs, const int32_t* yDivs,
+            const uint32_t* colors, uint32_t width, uint32_t height, int8_t numColors,
+            float left, float top, float right, float bottom, int alpha, SkXfermode::Mode mode);
     virtual status_t drawColor(int color, SkXfermode::Mode mode);
     virtual status_t drawRect(float left, float top, float right, float bottom, SkPaint* paint);
     virtual status_t drawRoundRect(float left, float top, float right, float bottom,
@@ -213,6 +216,54 @@
      */
     void drawTextureLayer(Layer* layer, const Rect& rect);
 
+    /**
+     * Gets the alpha and xfermode out of a paint object. If the paint is null
+     * alpha will be 255 and the xfermode will be SRC_OVER.
+     *
+     * @param paint The paint to extract values from
+     * @param alpha Where to store the resulting alpha
+     * @param mode Where to store the resulting xfermode
+     */
+    inline void getAlphaAndMode(SkPaint* paint, int* alpha, SkXfermode::Mode* mode);
+
+    /**
+     * Gets the alpha and xfermode out of a paint object. If the paint is null
+     * alpha will be 255 and the xfermode will be SRC_OVER. This method does
+     * not multiply the paint's alpha by the current snapshot's alpha.
+     *
+     * @param paint The paint to extract values from
+     * @param alpha Where to store the resulting alpha
+     * @param mode Where to store the resulting xfermode
+     */
+    static inline void getAlphaAndModeDirect(SkPaint* paint, int* alpha, SkXfermode::Mode* mode) {
+        if (paint) {
+            *mode = getXfermode(paint->getXfermode());
+
+            // Skia draws using the color's alpha channel if < 255
+            // Otherwise, it uses the paint's alpha
+            int color = paint->getColor();
+            *alpha = (color >> 24) & 0xFF;
+            if (*alpha == 255) {
+                *alpha = paint->getAlpha();
+            }
+        } else {
+            *mode = SkXfermode::kSrcOver_Mode;
+            *alpha = 255;
+        }
+    }
+
+    /**
+     * Safely retrieves the mode from the specified xfermode. If the specified
+     * xfermode is null, the mode is assumed to be SkXfermode::kSrcOver_Mode.
+     */
+    static inline SkXfermode::Mode getXfermode(SkXfermode* mode) {
+        SkXfermode::Mode resultMode;
+        if (!SkXfermode::AsMode(mode, &resultMode)) {
+            resultMode = SkXfermode::kSrcOver_Mode;
+        }
+        return resultMode;
+    }
+
 private:
     /**
      * Ensures the state of the renderer is the same as the state of
@@ -471,16 +522,6 @@
     void resetDrawTextureTexCoords(float u1, float v1, float u2, float v2);
 
     /**
-     * Gets the alpha and xfermode out of a paint object. If the paint is null
-     * alpha will be 255 and the xfermode will be SRC_OVER.
-     *
-     * @param paint The paint to extract values from
-     * @param alpha Where to store the resulting alpha
-     * @param mode Where to store the resulting xfermode
-     */
-    inline void getAlphaAndMode(SkPaint* paint, int* alpha, SkXfermode::Mode* mode);
-
-    /**
      * Binds the specified texture. The texture unit must have been selected
      * prior to calling this method.
      */
@@ -504,12 +545,6 @@
             bool swapSrcDst = false);
 
     /**
-     * Safely retrieves the mode from the specified xfermode. If the specified
-     * xfermode is null, the mode is assumed to be SkXfermode::kSrcOver_Mode.
-     */
-    inline SkXfermode::Mode getXfermode(SkXfermode* mode);
-
-    /**
      * Use the specified program with the current GL context. If the program is already
      * in use, it will not be bound again. If it is not in use, the current program is
      * marked unused and the specified program becomes used and becomes the new
@@ -537,7 +572,6 @@
     void setupDrawColor(int color, int alpha);
     void setupDrawColor(float r, float g, float b, float a);
     void setupDrawAlpha8Color(int color, int alpha);
-    void setupDrawAlpha8Color(float r, float g, float b, float a);
     void setupDrawShader();
     void setupDrawColorFilter();
     void setupDrawBlending(SkXfermode::Mode mode = SkXfermode::kSrcOver_Mode,
diff --git a/libs/hwui/Properties.h b/libs/hwui/Properties.h
index c0311fb..4a12e39 100644
--- a/libs/hwui/Properties.h
+++ b/libs/hwui/Properties.h
@@ -73,6 +73,10 @@
 #define PROPERTY_TEXT_CACHE_WIDTH "ro.hwui.text_cache_width"
 #define PROPERTY_TEXT_CACHE_HEIGHT "ro.hwui.text_cache_height"
 
+// Indicates whether gamma correction should be applied in the shaders
+// or in lookup tables. Accepted values: true, false
+#define PROPERTY_TEXT_GAMMA_SHADER "ro.hwui.text_gamma_shader"
+
 // Gamma (>= 1.0, <= 10.0)
 #define PROPERTY_TEXT_GAMMA "ro.text_gamma"
 #define PROPERTY_TEXT_BLACK_GAMMA_THRESHOLD "ro.text_gamma.black_threshold"
@@ -92,6 +96,8 @@
 
 #define DEFAULT_TEXTURE_CACHE_FLUSH_RATE 0.6f
 
+#define DEFAULT_TEXT_GAMMA_SHADER "false"
+
 #define DEFAULT_TEXT_GAMMA 1.4f
 #define DEFAULT_TEXT_BLACK_GAMMA_THRESHOLD 64
 #define DEFAULT_TEXT_WHITE_GAMMA_THRESHOLD 192
diff --git a/libs/hwui/Rect.h b/libs/hwui/Rect.h
index 2ca4f50..80f39ff 100644
--- a/libs/hwui/Rect.h
+++ b/libs/hwui/Rect.h
@@ -125,11 +125,11 @@
         return intersect(r.left, r.top, r.right, r.bottom);
     }
 
-    bool contains(float l, float t, float r, float b) {
+    inline bool contains(float l, float t, float r, float b) {
         return l >= left && t >= top && r <= right && b <= bottom;
     }
 
-    bool contains(const Rect& r) {
+    inline bool contains(const Rect& r) {
         return contains(r.left, r.top, r.right, r.bottom);
     }
 
diff --git a/location/java/android/location/ILocationManager.aidl b/location/java/android/location/ILocationManager.aidl
index 2255bf2..47b7adf 100644
--- a/location/java/android/location/ILocationManager.aidl
+++ b/location/java/android/location/ILocationManager.aidl
@@ -54,7 +54,7 @@
     boolean sendExtraCommand(String provider, String command, inout Bundle extras);
 
     void addProximityAlert(double latitude, double longitude, float distance,
-        long expiration, in PendingIntent intent);
+        long expiration, in PendingIntent intent, in String packageName);
     void removeProximityAlert(in PendingIntent intent);
 
     Bundle getProviderInfo(String provider);
diff --git a/location/java/android/location/LocationManager.java b/location/java/android/location/LocationManager.java
index 1299574..ff74f41 100644
--- a/location/java/android/location/LocationManager.java
+++ b/location/java/android/location/LocationManager.java
@@ -17,6 +17,7 @@
 package android.location;
 
 import android.app.PendingIntent;
+import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
 import android.os.Looper;
@@ -52,7 +53,9 @@
  */
 public class LocationManager {
     private static final String TAG = "LocationManager";
-    private ILocationManager mService;
+
+    private final Context mContext;
+    private final ILocationManager mService;
     private final HashMap<GpsStatus.Listener, GpsStatusListenerTransport> mGpsStatusListeners =
             new HashMap<GpsStatus.Listener, GpsStatusListenerTransport>();
     private final HashMap<GpsStatus.NmeaListener, GpsStatusListenerTransport> mNmeaListeners =
@@ -193,6 +196,7 @@
             }
         }
 
+        @Override
         public void onLocationChanged(Location location) {
             Message msg = Message.obtain();
             msg.what = TYPE_LOCATION_CHANGED;
@@ -200,6 +204,7 @@
             mListenerHandler.sendMessage(msg);
         }
 
+        @Override
         public void onStatusChanged(String provider, int status, Bundle extras) {
             Message msg = Message.obtain();
             msg.what = TYPE_STATUS_CHANGED;
@@ -213,6 +218,7 @@
             mListenerHandler.sendMessage(msg);
         }
 
+        @Override
         public void onProviderEnabled(String provider) {
             Message msg = Message.obtain();
             msg.what = TYPE_PROVIDER_ENABLED;
@@ -220,6 +226,7 @@
             mListenerHandler.sendMessage(msg);
         }
 
+        @Override
         public void onProviderDisabled(String provider) {
             Message msg = Message.obtain();
             msg.what = TYPE_PROVIDER_DISABLED;
@@ -260,8 +267,9 @@
      * right way to create an instance of this class is using the
      * factory Context.getSystemService.
      */
-    public LocationManager(ILocationManager service) {
+    public LocationManager(Context context, ILocationManager service) {
         mService = service;
+        mContext = context;
     }
 
     private LocationProvider createProvider(String name, Bundle info) {
@@ -1086,8 +1094,8 @@
                 ", intent = " + intent);
         }
         try {
-            mService.addProximityAlert(latitude, longitude, radius,
-                                       expiration, intent);
+            mService.addProximityAlert(latitude, longitude, radius, expiration, intent,
+                    mContext.getPackageName());
         } catch (RemoteException ex) {
             Log.e(TAG, "addProximityAlert: RemoteException", ex);
         }
@@ -1361,6 +1369,7 @@
             mNmeaBuffer = new ArrayList<Nmea>();
         }
 
+        @Override
         public void onGpsStarted() {
             if (mListener != null) {
                 Message msg = Message.obtain();
@@ -1369,6 +1378,7 @@
             }
         }
 
+        @Override
         public void onGpsStopped() {
             if (mListener != null) {
                 Message msg = Message.obtain();
@@ -1377,6 +1387,7 @@
             }
         }
 
+        @Override
         public void onFirstFix(int ttff) {
             if (mListener != null) {
                 mGpsStatus.setTimeToFirstFix(ttff);
@@ -1386,6 +1397,7 @@
             }
         }
 
+        @Override
         public void onSvStatusChanged(int svCount, int[] prns, float[] snrs,
                 float[] elevations, float[] azimuths, int ephemerisMask,
                 int almanacMask, int usedInFixMask) {
@@ -1401,6 +1413,7 @@
             }
         }
 
+        @Override
         public void onNmeaReceived(long timestamp, String nmea) {
             if (mNmeaListener != null) {
                 synchronized (mNmeaBuffer) {
diff --git a/location/java/com/android/internal/location/DummyLocationProvider.java b/location/java/com/android/internal/location/DummyLocationProvider.java
index e7b5143..3122960 100644
--- a/location/java/com/android/internal/location/DummyLocationProvider.java
+++ b/location/java/com/android/internal/location/DummyLocationProvider.java
@@ -24,7 +24,7 @@
  * A DummyLocationProvider may be queried to determine the properties
  * of the provider whcih it shadows, but does not actually provide location
  * data.
- * 
+ *
  * {@hide}
  */
 public class DummyLocationProvider extends LocationProvider {
@@ -86,6 +86,7 @@
      * Returns true if the provider requires access to a
      * data network (e.g., the Internet), false otherwise.
      */
+    @Override
     public boolean requiresNetwork() {
         return mRequiresNetwork;
     }
@@ -95,6 +96,7 @@
      * satellite-based positioning system (e.g., GPS), false
      * otherwise.
      */
+    @Override
     public boolean requiresSatellite() {
         return mRequiresSatellite;
     }
@@ -104,6 +106,7 @@
      * cellular network (e.g., to make use of cell tower IDs), false
      * otherwise.
      */
+    @Override
     public boolean requiresCell() {
         return mRequiresCell;
     }
@@ -113,6 +116,7 @@
      * monetary charge to the user, false if use is free.  It is up to
      * each provider to give accurate information.
      */
+    @Override
     public boolean hasMonetaryCost() {
         return mHasMonetaryCost;
     }
@@ -123,6 +127,7 @@
      * under most circumstances but may occassionally not report it
      * should return true.
      */
+    @Override
     public boolean supportsAltitude() {
         return mSupportsAltitude;
     }
@@ -133,6 +138,7 @@
      * under most circumstances but may occassionally not report it
      * should return true.
      */
+    @Override
     public boolean supportsSpeed() {
         return mSupportsSpeed;
     }
@@ -143,6 +149,7 @@
      * under most circumstances but may occassionally not report it
      * should return true.
      */
+    @Override
     public boolean supportsBearing() {
         return mSupportsBearing;
     }
@@ -153,6 +160,7 @@
      * @return the power requirement for this provider, as one of the
      * constants Criteria.POWER_REQUIREMENT_*.
      */
+    @Override
     public int getPowerRequirement() {
         return mPowerRequirement;
     }
@@ -164,6 +172,7 @@
      * @return the horizontal accuracy for this provider, as one of the
      * constants Criteria.ACCURACY_*.
      */
+    @Override
     public int getAccuracy() {
         return mAccuracy;
     }
diff --git a/packages/BackupRestoreConfirmation/res/values-fa/strings.xml b/packages/BackupRestoreConfirmation/res/values-fa/strings.xml
index d202d74..6da7d4a 100644
--- a/packages/BackupRestoreConfirmation/res/values-fa/strings.xml
+++ b/packages/BackupRestoreConfirmation/res/values-fa/strings.xml
@@ -18,16 +18,16 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="backup_confirm_title" msgid="827563724209303345">"پشتیبان‌گیری کامل"</string>
     <string name="restore_confirm_title" msgid="5469365809567486602">"بازیابی کامل"</string>
-    <string name="backup_confirm_text" msgid="1878021282758896593">"درخواست پشتیبان گیری کامل از تمام داده‌ها به یک رایانه دسک‌تاپ متصل داده شده است. آیا می‌خواهید این عمل انجام شود؟"\n\n"اگر شما درخواست تهیه نسخه پشتیبان را نداده‌اید، اجازه‌ ادامه عملیات را ندهید."</string>
-    <string name="allow_backup_button_label" msgid="4217228747769644068">"از داده‌های من نسخه پشتیبان تهیه شود"</string>
-    <string name="deny_backup_button_label" msgid="6009119115581097708">"نسخه پشتیبان تهیه نشود"</string>
-    <string name="restore_confirm_text" msgid="7499866728030461776">"بازیابی کامل تمام داده‌ها از یک رایانه دسک تاپ متصل درخواست شده است. آیا می خواهید این اجازه را بدهید؟"\n\n"اگر خود شما درخواست بازیابی نداده‌اید، اجازه ادامه این عملیات را ندهید. با این کار همه داده‌هایی که اکنون روی دستگاه است جایگزین می‌شود!"</string>
+    <string name="backup_confirm_text" msgid="1878021282758896593">"درخواست پشتیبان گیری کامل از تمام داده‌ها به یک رایانه دسک‌تاپ متصل داده شده است. آیا می‌خواهید این عمل انجام شود؟"\n\n"اگر شما درخواست تهیه نسخهٔ پشتیبان را نداده‌اید، اجازه‌ ادامه عملیات را ندهید."</string>
+    <string name="allow_backup_button_label" msgid="4217228747769644068">"از داده‌های من نسخهٔ پشتیبان تهیه شود"</string>
+    <string name="deny_backup_button_label" msgid="6009119115581097708">"نسخهٔ پشتیبان تهیه نشود"</string>
+    <string name="restore_confirm_text" msgid="7499866728030461776">"بازیابی کامل تمام داده‌ها از یک رایانه دسک تاپ متصل درخواست شده است. آیا می‌خواهید این اجازه را بدهید؟"\n\n"اگر خود شما درخواست بازیابی نداده‌اید، اجازه ادامه این عملیات را ندهید. با این کار همه داده‌هایی که اکنون روی دستگاه است جایگزین می‌شود!"</string>
     <string name="allow_restore_button_label" msgid="3081286752277127827">"بازیابی داده‌های من"</string>
     <string name="deny_restore_button_label" msgid="1724367334453104378">"بازیابی نشود"</string>
-    <string name="current_password_text" msgid="8268189555578298067">"لطفاً گذرواژه نسخه پشتیبان فعلی خود را در زیر وارد کنید:"</string>
+    <string name="current_password_text" msgid="8268189555578298067">"لطفاً گذرواژه نسخهٔ پشتیبان فعلی خود را در زیر وارد کنید:"</string>
     <string name="device_encryption_restore_text" msgid="1570864916855208992">"لطفاً گذرواژه رمزگذاری دستگاه خود را در زیر وارد کنید."</string>
     <string name="device_encryption_backup_text" msgid="5866590762672844664">"لطفاً گذرواژه رمزگذاری دستگاه خود را در زیر وارد کنید. این برای رمزگذاری بایگانی پشتیبان نیز مورد استفاده قرار می‌گیرد."</string>
-    <string name="backup_enc_password_text" msgid="4981585714795233099">"لطفاً یک گذرواژه برای رمزگذاری داده‌های کامل نسخه پشتیبانی وارد کنید. اگر این خالی بماند، گذرواژه فعلی نسخه پشتیبان مورد استفاده قرار خواهد گرفت:"</string>
+    <string name="backup_enc_password_text" msgid="4981585714795233099">"لطفاً یک گذرواژه برای رمزگذاری داده‌های کامل نسخهٔ پشتیبانی وارد کنید. اگر این خالی بماند، گذرواژه فعلی نسخهٔ پشتیبان مورد استفاده قرار خواهد گرفت:"</string>
     <string name="backup_enc_password_optional" msgid="1350137345907579306">"اگر می‌خواهید تمام نسخه پشتیبانی داده را رمزدار کنید، یک گذرواژه در زیر وارد کنید:"</string>
     <string name="restore_enc_password_text" msgid="6140898525580710823">"اگر داده بازیابی شده رمزگذاری شده است، لطفاً گذرواژه را در زیر وارد کنید:"</string>
     <string name="toast_backup_started" msgid="550354281452756121">"شروع پشتیبان‌گیری..."</string>
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_alarm.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_alarm.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_alarm.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_alarm.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_0.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_0.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_0.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_100.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_100.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_100.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_100.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_15.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_15.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_15.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_15.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_28.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_28.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_28.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_28.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_43.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_43.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_43.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_43.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_57.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_57.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_57.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_57.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_71.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_71.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_71.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_71.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_85.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_85.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_85.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_85.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_charge_anim0.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_charge_anim0.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_charge_anim0.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_charge_anim0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_charge_anim100.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_charge_anim100.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_charge_anim100.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_charge_anim100.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_charge_anim15.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_charge_anim15.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_charge_anim15.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_charge_anim15.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_charge_anim28.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_charge_anim28.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_charge_anim28.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_charge_anim28.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_charge_anim43.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_charge_anim43.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_charge_anim43.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_charge_anim43.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_charge_anim57.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_charge_anim57.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_charge_anim57.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_charge_anim57.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_charge_anim71.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_charge_anim71.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_charge_anim71.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_charge_anim71.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_charge_anim85.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_charge_anim85.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_battery_charge_anim85.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_battery_charge_anim85.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_data_bluetooth.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_data_bluetooth.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_data_bluetooth.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_data_bluetooth.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_data_bluetooth_connected.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_data_bluetooth_connected.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_data_bluetooth_connected.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_data_bluetooth_connected.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_data_connected_1x.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_data_connected_1x.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_data_connected_1x.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_data_connected_1x.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_data_connected_3g.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_data_connected_3g.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_data_connected_3g.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_data_connected_3g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_data_connected_4g.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_data_connected_4g.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_data_connected_4g.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_data_connected_4g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_data_connected_e.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_data_connected_e.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_data_connected_e.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_data_connected_e.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_data_connected_g.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_data_connected_g.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_data_connected_g.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_data_connected_g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_data_connected_h.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_data_connected_h.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_data_connected_h.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_data_connected_h.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_data_connected_roam.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_data_connected_roam.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_data_connected_roam.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_data_connected_roam.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_data_fully_connected_1x.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_data_fully_connected_1x.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_data_fully_connected_1x.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_data_fully_connected_1x.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_data_fully_connected_3g.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_data_fully_connected_3g.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_data_fully_connected_3g.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_data_fully_connected_3g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_data_fully_connected_4g.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_data_fully_connected_4g.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_data_fully_connected_4g.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_data_fully_connected_4g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_data_fully_connected_e.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_data_fully_connected_e.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_data_fully_connected_e.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_data_fully_connected_e.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_data_fully_connected_g.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_data_fully_connected_g.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_data_fully_connected_g.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_data_fully_connected_g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_data_fully_connected_h.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_data_fully_connected_h.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_data_fully_connected_h.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_data_fully_connected_h.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_signal_0.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_signal_0.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_signal_0.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_signal_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_signal_0_fully.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_signal_0_fully.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_signal_0_fully.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_signal_0_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_signal_1.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_signal_1.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_signal_1.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_signal_1.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_signal_1_fully.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_signal_1_fully.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_signal_1_fully.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_signal_1_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_signal_2.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_signal_2.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_signal_2.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_signal_2.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_signal_2_fully.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_signal_2_fully.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_signal_2_fully.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_signal_2_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_signal_3.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_signal_3.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_signal_3.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_signal_3.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_signal_3_fully.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_signal_3_fully.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_signal_3_fully.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_signal_3_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_signal_4.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_signal_4.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_signal_4.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_signal_4.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_signal_4_fully.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_signal_4_fully.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_signal_4_fully.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_signal_4_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_signal_flightmode.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_signal_flightmode.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_signal_flightmode.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_signal_flightmode.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_signal_in.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_signal_in.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_signal_in.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_signal_in.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_signal_inout.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_signal_inout.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_signal_inout.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_signal_inout.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_signal_null.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_signal_null.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_signal_null.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_signal_null.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_signal_out.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_signal_out.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_signal_out.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_signal_out.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_wifi_in.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_wifi_in.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_wifi_in.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_wifi_in.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_wifi_inout.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_wifi_inout.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_wifi_inout.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_wifi_inout.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_wifi_out.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_wifi_out.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_wifi_out.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_wifi_out.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_wifi_signal_0.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_wifi_signal_0.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_wifi_signal_0.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_wifi_signal_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_wifi_signal_1.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_wifi_signal_1.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_wifi_signal_1.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_wifi_signal_1.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_wifi_signal_1_fully.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_wifi_signal_1_fully.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_wifi_signal_1_fully.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_wifi_signal_1_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_wifi_signal_2.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_wifi_signal_2.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_wifi_signal_2.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_wifi_signal_2.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_wifi_signal_2_fully.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_wifi_signal_2_fully.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_wifi_signal_2_fully.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_wifi_signal_2_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_wifi_signal_3.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_wifi_signal_3.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_wifi_signal_3.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_wifi_signal_3.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_wifi_signal_3_fully.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_wifi_signal_3_fully.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_wifi_signal_3_fully.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_wifi_signal_3_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_wifi_signal_4.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_wifi_signal_4.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_wifi_signal_4.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_wifi_signal_4.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_wifi_signal_4_fully.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_wifi_signal_4_fully.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_wifi_signal_4_fully.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_wifi_signal_4_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_wifi_signal_null.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_wifi_signal_null.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/stat_sys_wifi_signal_null.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/ic_sysbar_wifi_signal_null.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-hdpi/notification_panel_bg.9.png b/packages/SystemUI/res/drawable-sw720dp-hdpi/sysbar_notification_panel_bg.9.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-hdpi/notification_panel_bg.9.png
rename to packages/SystemUI/res/drawable-sw720dp-hdpi/sysbar_notification_panel_bg.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_alarm.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_alarm.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_alarm.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_alarm.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_0.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_0.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_0.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_100.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_100.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_100.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_100.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_15.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_15.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_15.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_15.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_28.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_28.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_28.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_28.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_43.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_43.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_43.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_43.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_57.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_57.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_57.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_57.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_71.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_71.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_71.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_71.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_85.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_85.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_85.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_85.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_charge_anim0.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_charge_anim0.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_charge_anim0.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_charge_anim0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_charge_anim100.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_charge_anim100.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_charge_anim100.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_charge_anim100.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_charge_anim15.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_charge_anim15.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_charge_anim15.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_charge_anim15.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_charge_anim28.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_charge_anim28.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_charge_anim28.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_charge_anim28.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_charge_anim43.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_charge_anim43.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_charge_anim43.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_charge_anim43.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_charge_anim57.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_charge_anim57.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_charge_anim57.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_charge_anim57.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_charge_anim71.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_charge_anim71.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_charge_anim71.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_charge_anim71.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_charge_anim85.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_charge_anim85.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_battery_charge_anim85.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_battery_charge_anim85.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_data_bluetooth.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_data_bluetooth.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_data_bluetooth.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_data_bluetooth.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_data_bluetooth_connected.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_data_bluetooth_connected.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_data_bluetooth_connected.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_data_bluetooth_connected.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_data_connected_1x.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_data_connected_1x.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_data_connected_1x.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_data_connected_1x.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_data_connected_3g.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_data_connected_3g.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_data_connected_3g.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_data_connected_3g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_data_connected_4g.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_data_connected_4g.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_data_connected_4g.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_data_connected_4g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_data_connected_e.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_data_connected_e.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_data_connected_e.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_data_connected_e.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_data_connected_g.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_data_connected_g.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_data_connected_g.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_data_connected_g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_data_connected_h.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_data_connected_h.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_data_connected_h.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_data_connected_h.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_data_connected_roam.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_data_connected_roam.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_data_connected_roam.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_data_connected_roam.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_data_fully_connected_1x.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_data_fully_connected_1x.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_data_fully_connected_1x.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_data_fully_connected_1x.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_data_fully_connected_3g.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_data_fully_connected_3g.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_data_fully_connected_3g.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_data_fully_connected_3g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_data_fully_connected_4g.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_data_fully_connected_4g.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_data_fully_connected_4g.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_data_fully_connected_4g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_data_fully_connected_e.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_data_fully_connected_e.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_data_fully_connected_e.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_data_fully_connected_e.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_data_fully_connected_g.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_data_fully_connected_g.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_data_fully_connected_g.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_data_fully_connected_g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_data_fully_connected_h.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_data_fully_connected_h.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_data_fully_connected_h.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_data_fully_connected_h.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_signal_0.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_signal_0.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_signal_0.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_signal_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_signal_0_fully.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_signal_0_fully.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_signal_0_fully.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_signal_0_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_signal_1.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_signal_1.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_signal_1.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_signal_1.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_signal_1_fully.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_signal_1_fully.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_signal_1_fully.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_signal_1_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_signal_2.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_signal_2.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_signal_2.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_signal_2.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_signal_2_fully.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_signal_2_fully.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_signal_2_fully.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_signal_2_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_signal_3.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_signal_3.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_signal_3.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_signal_3.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_signal_3_fully.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_signal_3_fully.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_signal_3_fully.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_signal_3_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_signal_4.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_signal_4.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_signal_4.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_signal_4.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_signal_4_fully.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_signal_4_fully.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_signal_4_fully.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_signal_4_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_signal_flightmode.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_signal_flightmode.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_signal_flightmode.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_signal_flightmode.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_signal_in.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_signal_in.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_signal_in.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_signal_in.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_signal_inout.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_signal_inout.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_signal_inout.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_signal_inout.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_signal_null.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_signal_null.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_signal_null.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_signal_null.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_signal_out.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_signal_out.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_signal_out.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_signal_out.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_wifi_in.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_wifi_in.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_wifi_in.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_wifi_in.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_wifi_inout.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_wifi_inout.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_wifi_inout.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_wifi_inout.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_wifi_out.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_wifi_out.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_wifi_out.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_wifi_out.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_wifi_signal_0.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_wifi_signal_0.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_wifi_signal_0.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_wifi_signal_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_wifi_signal_1.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_wifi_signal_1.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_wifi_signal_1.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_wifi_signal_1.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_wifi_signal_1_fully.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_wifi_signal_1_fully.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_wifi_signal_1_fully.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_wifi_signal_1_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_wifi_signal_2.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_wifi_signal_2.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_wifi_signal_2.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_wifi_signal_2.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_wifi_signal_2_fully.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_wifi_signal_2_fully.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_wifi_signal_2_fully.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_wifi_signal_2_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_wifi_signal_3.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_wifi_signal_3.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_wifi_signal_3.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_wifi_signal_3.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_wifi_signal_3_fully.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_wifi_signal_3_fully.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_wifi_signal_3_fully.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_wifi_signal_3_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_wifi_signal_4.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_wifi_signal_4.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_wifi_signal_4.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_wifi_signal_4.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_wifi_signal_4_fully.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_wifi_signal_4_fully.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_wifi_signal_4_fully.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_wifi_signal_4_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_wifi_signal_null.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_wifi_signal_null.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/stat_sys_wifi_signal_null.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/ic_sysbar_wifi_signal_null.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-mdpi/notification_panel_bg.9.png b/packages/SystemUI/res/drawable-sw720dp-mdpi/sysbar_notification_panel_bg.9.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-mdpi/notification_panel_bg.9.png
rename to packages/SystemUI/res/drawable-sw720dp-mdpi/sysbar_notification_panel_bg.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-tvdpi/notification_panel_bg.9.png b/packages/SystemUI/res/drawable-sw720dp-tvdpi/sysbar_notification_panel_bg.9.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-tvdpi/notification_panel_bg.9.png
rename to packages/SystemUI/res/drawable-sw720dp-tvdpi/sysbar_notification_panel_bg.9.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_alarm.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_alarm.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_alarm.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_alarm.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_0.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_0.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_0.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_100.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_100.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_100.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_100.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_15.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_15.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_15.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_15.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_28.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_28.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_28.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_28.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_43.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_43.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_43.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_43.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_57.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_57.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_57.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_57.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_71.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_71.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_71.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_71.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_85.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_85.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_85.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_85.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_charge_anim0.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_charge_anim0.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_charge_anim0.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_charge_anim0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_charge_anim100.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_charge_anim100.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_charge_anim100.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_charge_anim100.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_charge_anim15.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_charge_anim15.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_charge_anim15.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_charge_anim15.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_charge_anim28.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_charge_anim28.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_charge_anim28.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_charge_anim28.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_charge_anim43.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_charge_anim43.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_charge_anim43.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_charge_anim43.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_charge_anim57.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_charge_anim57.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_charge_anim57.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_charge_anim57.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_charge_anim71.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_charge_anim71.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_charge_anim71.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_charge_anim71.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_charge_anim85.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_charge_anim85.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_battery_charge_anim85.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_battery_charge_anim85.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_data_bluetooth.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_data_bluetooth.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_data_bluetooth.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_data_bluetooth.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_data_bluetooth_connected.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_data_bluetooth_connected.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_data_bluetooth_connected.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_data_bluetooth_connected.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_data_connected_1x.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_data_connected_1x.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_data_connected_1x.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_data_connected_1x.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_data_connected_3g.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_data_connected_3g.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_data_connected_3g.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_data_connected_3g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_data_connected_4g.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_data_connected_4g.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_data_connected_4g.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_data_connected_4g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_data_connected_e.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_data_connected_e.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_data_connected_e.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_data_connected_e.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_data_connected_g.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_data_connected_g.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_data_connected_g.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_data_connected_g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_data_connected_h.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_data_connected_h.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_data_connected_h.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_data_connected_h.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_data_connected_roam.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_data_connected_roam.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_data_connected_roam.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_data_connected_roam.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_data_fully_connected_1x.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_data_fully_connected_1x.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_data_fully_connected_1x.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_data_fully_connected_1x.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_data_fully_connected_3g.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_data_fully_connected_3g.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_data_fully_connected_3g.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_data_fully_connected_3g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_data_fully_connected_4g.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_data_fully_connected_4g.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_data_fully_connected_4g.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_data_fully_connected_4g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_data_fully_connected_e.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_data_fully_connected_e.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_data_fully_connected_e.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_data_fully_connected_e.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_data_fully_connected_g.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_data_fully_connected_g.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_data_fully_connected_g.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_data_fully_connected_g.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_data_fully_connected_h.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_data_fully_connected_h.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_data_fully_connected_h.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_data_fully_connected_h.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_signal_0.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_signal_0.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_signal_0.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_signal_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_signal_0_fully.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_signal_0_fully.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_signal_0_fully.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_signal_0_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_signal_1.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_signal_1.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_signal_1.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_signal_1.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_signal_1_fully.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_signal_1_fully.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_signal_1_fully.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_signal_1_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_signal_2.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_signal_2.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_signal_2.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_signal_2.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_signal_2_fully.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_signal_2_fully.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_signal_2_fully.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_signal_2_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_signal_3.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_signal_3.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_signal_3.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_signal_3.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_signal_3_fully.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_signal_3_fully.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_signal_3_fully.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_signal_3_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_signal_4.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_signal_4.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_signal_4.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_signal_4.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_signal_4_fully.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_signal_4_fully.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_signal_4_fully.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_signal_4_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_signal_flightmode.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_signal_flightmode.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_signal_flightmode.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_signal_flightmode.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_signal_in.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_signal_in.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_signal_in.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_signal_in.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_signal_inout.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_signal_inout.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_signal_inout.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_signal_inout.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_signal_null.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_signal_null.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_signal_null.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_signal_null.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_signal_out.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_signal_out.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_signal_out.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_signal_out.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_wifi_in.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_wifi_in.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_wifi_in.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_wifi_in.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_wifi_inout.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_wifi_inout.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_wifi_inout.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_wifi_inout.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_wifi_out.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_wifi_out.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_wifi_out.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_wifi_out.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_wifi_signal_0.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_wifi_signal_0.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_wifi_signal_0.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_wifi_signal_0.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_wifi_signal_1.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_wifi_signal_1.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_wifi_signal_1.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_wifi_signal_1.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_wifi_signal_1_fully.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_wifi_signal_1_fully.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_wifi_signal_1_fully.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_wifi_signal_1_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_wifi_signal_2.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_wifi_signal_2.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_wifi_signal_2.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_wifi_signal_2.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_wifi_signal_2_fully.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_wifi_signal_2_fully.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_wifi_signal_2_fully.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_wifi_signal_2_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_wifi_signal_3.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_wifi_signal_3.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_wifi_signal_3.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_wifi_signal_3.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_wifi_signal_3_fully.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_wifi_signal_3_fully.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_wifi_signal_3_fully.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_wifi_signal_3_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_wifi_signal_4.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_wifi_signal_4.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_wifi_signal_4.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_wifi_signal_4.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_wifi_signal_4_fully.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_wifi_signal_4_fully.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_wifi_signal_4_fully.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_wifi_signal_4_fully.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_wifi_signal_null.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_wifi_signal_null.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/stat_sys_wifi_signal_null.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/ic_sysbar_wifi_signal_null.png
Binary files differ
diff --git a/packages/SystemUI/res/drawable-sw720dp-xhdpi/notification_panel_bg.9.png b/packages/SystemUI/res/drawable-sw720dp-xhdpi/sysbar_notification_panel_bg.9.png
similarity index 100%
rename from packages/SystemUI/res/drawable-sw720dp-xhdpi/notification_panel_bg.9.png
rename to packages/SystemUI/res/drawable-sw720dp-xhdpi/sysbar_notification_panel_bg.9.png
Binary files differ
diff --git a/packages/SystemUI/res/layout/system_bar_notification_panel_title.xml b/packages/SystemUI/res/layout/system_bar_notification_panel_title.xml
index 480d979..2d1bda4 100644
--- a/packages/SystemUI/res/layout/system_bar_notification_panel_title.xml
+++ b/packages/SystemUI/res/layout/system_bar_notification_panel_title.xml
@@ -85,7 +85,7 @@
             </FrameLayout>
             <TextView
                 android:id="@+id/mobile_text"
-                style="@style/StatusBarNotificationText"
+                style="@style/SystemBarNotificationText"
                 android:layout_gravity="left|center_vertical"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
@@ -121,7 +121,7 @@
             </FrameLayout>
             <TextView
                 android:id="@+id/wifi_text"
-                style="@style/StatusBarNotificationText"
+                style="@style/SystemBarNotificationText"
                 android:layout_gravity="left|center_vertical"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
@@ -144,7 +144,7 @@
 
             <TextView
                 android:id="@+id/battery_text"
-                style="@style/StatusBarNotificationText"
+                style="@style/SystemBarNotificationText"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_gravity="left|center_vertical"
@@ -202,7 +202,7 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:singleLine="true"
-            android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Clock"
+            android:textAppearance="@style/TextAppearance.SystemBar.Expanded.Clock"
             />
     
         <com.android.systemui.statusbar.policy.DateView
@@ -211,7 +211,7 @@
             android:layout_height="wrap_content"
             android:layout_marginLeft="8dp"
             android:layout_marginRight="8dp"
-            android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Date"
+            android:textAppearance="@style/TextAppearance.SystemBar.Expanded.Date"
             />
 
         <Space
diff --git a/packages/SystemUI/res/layout/system_bar_settings_view.xml b/packages/SystemUI/res/layout/system_bar_settings_view.xml
index e1b2a54..d07e45d 100644
--- a/packages/SystemUI/res/layout/system_bar_settings_view.xml
+++ b/packages/SystemUI/res/layout/system_bar_settings_view.xml
@@ -26,16 +26,16 @@
     <!-- Airplane mode -->
     <LinearLayout
             android:id="@+id/airplane"
-            style="@style/StatusBarPanelSettingsRow"
+            style="@style/SystemBarPanelSettingsRow"
             >
         <ImageView
                 android:id="@+id/airplane_icon"
-                style="@style/StatusBarPanelSettingsIcon"
+                style="@style/SystemBarPanelSettingsIcon"
                 android:src="@drawable/ic_sysbar_airplane_on"
                 />
         <TextView
                 android:id="@+id/airplane_label"
-                style="@style/StatusBarPanelSettingsContents"
+                style="@style/SystemBarPanelSettingsContents"
                 android:text="@string/status_bar_settings_airplane"
                 />
         <Switch
@@ -46,39 +46,39 @@
                 android:layout_marginRight="5dp"
                 />
     </LinearLayout>
-    <View style="@style/StatusBarPanelSettingsPanelSeparator" />
+    <View style="@style/SystemBarPanelSettingsPanelSeparator" />
 
     <!-- Network -->
     <LinearLayout
             android:id="@+id/network"
-            style="@style/StatusBarPanelSettingsRow"
+            style="@style/SystemBarPanelSettingsRow"
             >
         <ImageView
                 android:id="@+id/network_icon"
-                style="@style/StatusBarPanelSettingsIcon"
+                style="@style/SystemBarPanelSettingsIcon"
                 android:src="@drawable/ic_sysbar_wifi_on"
                 />
         <TextView
                 android:id="@+id/network_label"
-                style="@style/StatusBarPanelSettingsContents"
+                style="@style/SystemBarPanelSettingsContents"
                 android:text="@string/status_bar_settings_wifi_button"
                 />
     </LinearLayout>
-    <View style="@style/StatusBarPanelSettingsPanelSeparator" />
+    <View style="@style/SystemBarPanelSettingsPanelSeparator" />
 
     <!-- Rotation lock -->
     <LinearLayout
             android:id="@+id/rotate"
-            style="@style/StatusBarPanelSettingsRow"
+            style="@style/SystemBarPanelSettingsRow"
             >
         <ImageView
                 android:id="@+id/rotate_icon"
-                style="@style/StatusBarPanelSettingsIcon"
+                style="@style/SystemBarPanelSettingsIcon"
                 android:src="@drawable/ic_sysbar_rotate_on"
                 />
         <TextView
                 android:id="@+id/rotate_label"
-                style="@style/StatusBarPanelSettingsContents"
+                style="@style/SystemBarPanelSettingsContents"
                 android:text="@string/status_bar_settings_auto_rotation"
                 />
         <Switch
@@ -91,13 +91,13 @@
     </LinearLayout>
     <View
             android:id="@+id/rotate_separator"
-            style="@style/StatusBarPanelSettingsPanelSeparator" />
+            style="@style/SystemBarPanelSettingsPanelSeparator" />
 
     <!-- Brightness -->
-    <LinearLayout style="@style/StatusBarPanelSettingsRow" >
+    <LinearLayout style="@style/SystemBarPanelSettingsRow" >
         <ImageView
                 android:id="@+id/brightness_icon"
-                style="@style/StatusBarPanelSettingsIcon"
+                style="@style/SystemBarPanelSettingsIcon"
                 android:src="@drawable/ic_sysbar_brightness"
                 />
         <com.android.systemui.statusbar.policy.ToggleSlider
@@ -109,20 +109,20 @@
                 systemui:text="@string/status_bar_settings_auto_brightness_label"
                 />
     </LinearLayout>
-    <View style="@style/StatusBarPanelSettingsPanelSeparator" />
+    <View style="@style/SystemBarPanelSettingsPanelSeparator" />
 
     <!-- Notifications / Do not disturb -->
     <LinearLayout
             android:id="@+id/do_not_disturb"
-            style="@style/StatusBarPanelSettingsRow"
+            style="@style/SystemBarPanelSettingsRow"
             >
         <ImageView
                 android:id="@+id/do_not_disturb_icon"
-                style="@style/StatusBarPanelSettingsIcon"
+                style="@style/SystemBarPanelSettingsIcon"
                 android:src="@drawable/ic_notification_open"
                 />
         <TextView
-                style="@style/StatusBarPanelSettingsContents"
+                style="@style/SystemBarPanelSettingsContents"
                 android:text="@string/status_bar_settings_notifications"
                 />
         <Switch
@@ -133,25 +133,25 @@
                 android:layout_marginRight="5dp"
                 />
     </LinearLayout>
-    <View style="@style/StatusBarPanelSettingsPanelSeparator" />
+    <View style="@style/SystemBarPanelSettingsPanelSeparator" />
 
     <!-- Link to settings -->
     <LinearLayout
             android:id="@+id/settings"
-            style="@style/StatusBarPanelSettingsRow"
+            style="@style/SystemBarPanelSettingsRow"
             >
 
         <ImageView
                 android:id="@+id/settings"
-                style="@style/StatusBarPanelSettingsIcon"
+                style="@style/SystemBarPanelSettingsIcon"
                 android:src="@drawable/ic_sysbar_quicksettings"
                 />
         <TextView
-                style="@style/StatusBarPanelSettingsContents"
+                style="@style/SystemBarPanelSettingsContents"
                 android:text="@string/status_bar_settings_settings_button"
                 />
     </LinearLayout>
-    <View style="@style/StatusBarPanelSettingsPanelSeparator" />
+    <View style="@style/SystemBarPanelSettingsPanelSeparator" />
 
 </com.android.systemui.statusbar.tablet.SettingsView>
 
diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml
index 61a58d3..888564b9 100644
--- a/packages/SystemUI/res/values-fa/strings.xml
+++ b/packages/SystemUI/res/values-fa/strings.xml
@@ -22,7 +22,7 @@
     <string name="app_label" msgid="7164937344850004466">"رابط کاربر سیستم"</string>
     <string name="status_bar_clear_all_button" msgid="7774721344716731603">"پاک کردن"</string>
     <string name="status_bar_do_not_disturb_button" msgid="5812628897510997853">"مزاحم نشوید"</string>
-    <string name="status_bar_please_disturb_button" msgid="3345398298841572813">"نمایش اعلان ها"</string>
+    <string name="status_bar_please_disturb_button" msgid="3345398298841572813">"نمایش اعلان‌ها"</string>
     <string name="status_bar_recent_remove_item_title" msgid="6026395868129852968">"حذف از لیست"</string>
     <string name="status_bar_recent_inspect_item_title" msgid="7793624864528818569">"اطلاعات برنامه"</string>
     <string name="status_bar_no_recent_apps" msgid="6576392951053994640">"برنامه جدیدی موجود نیست"</string>
@@ -33,11 +33,11 @@
   </plurals>
     <string name="status_bar_no_notifications_title" msgid="4755261167193833213">"اعلانی موجود نیست"</string>
     <string name="status_bar_ongoing_events_title" msgid="1682504513316879202">"در حال انجام"</string>
-    <string name="status_bar_latest_events_title" msgid="6594767438577593172">"اعلان ها"</string>
+    <string name="status_bar_latest_events_title" msgid="6594767438577593172">"اعلان‌ها"</string>
     <string name="battery_low_title" msgid="2783104807551211639">"شارژر را متصل کنید"</string>
     <string name="battery_low_subtitle" msgid="1752040062087829196">"باتری در حال کم شدن است."</string>
     <string name="battery_low_percent_format" msgid="1077244949318261761">"<xliff:g id="NUMBER">%d%%</xliff:g> باقیمانده است"</string>
-    <string name="invalid_charger" msgid="4549105996740522523">"شارژ USB پشتیبانی نمی شود."\n"فقط از شارژر ارائه شده استفاده کنید."</string>
+    <string name="invalid_charger" msgid="4549105996740522523">"شارژ USB پشتیبانی نمی‌شود."\n"فقط از شارژر ارائه شده استفاده کنید."</string>
     <string name="battery_low_why" msgid="7279169609518386372">"استفاده از باتری"</string>
     <string name="status_bar_settings_settings_button" msgid="3023889916699270224">"تنظیمات"</string>
     <string name="status_bar_settings_wifi_button" msgid="1733928151698311923">"Wi-Fi"</string>
@@ -45,23 +45,23 @@
     <string name="status_bar_settings_auto_rotation" msgid="3790482541357798421">"چرخش خودکار صفحه"</string>
     <string name="status_bar_settings_mute_label" msgid="554682549917429396">"بیصدا"</string>
     <string name="status_bar_settings_auto_brightness_label" msgid="511453614962324674">"خودکار"</string>
-    <string name="status_bar_settings_notifications" msgid="397146176280905137">"اعلان ها"</string>
+    <string name="status_bar_settings_notifications" msgid="397146176280905137">"اعلان‌ها"</string>
     <string name="bluetooth_tethered" msgid="7094101612161133267">"اتصال اینترنتی با بلوتوث تلفن همراه"</string>
     <string name="status_bar_input_method_settings_configure_input_methods" msgid="3504292471512317827">"تنظیم روش‌های ورودی"</string>
     <string name="status_bar_use_physical_keyboard" msgid="7551903084416057810">"صفحه کلید فیزیکی"</string>
-    <string name="usb_device_permission_prompt" msgid="834698001271562057">"به برنامه <xliff:g id="APPLICATION">%1$s</xliff:g> اجازه می دهید به دستگاه USB دسترسی داشته باشد؟"</string>
-    <string name="usb_accessory_permission_prompt" msgid="5171775411178865750">"به برنامه <xliff:g id="APPLICATION">%1$s</xliff:g> اجازه میدهد تا به وسیله جانبی USB دسترسی داشته باشد؟"</string>
+    <string name="usb_device_permission_prompt" msgid="834698001271562057">"به برنامه <xliff:g id="APPLICATION">%1$s</xliff:g> اجازه می‌دهید به دستگاه USB دسترسی داشته باشد؟"</string>
+    <string name="usb_accessory_permission_prompt" msgid="5171775411178865750">"به برنامه <xliff:g id="APPLICATION">%1$s</xliff:g> اجازه می‌دهد تا به وسیله جانبی USB دسترسی داشته باشد؟"</string>
     <string name="usb_device_confirm_prompt" msgid="5161205258635253206">"وقتی این دستگاه USB وصل است، <xliff:g id="ACTIVITY">%1$s</xliff:g> باز شود؟"</string>
     <string name="usb_accessory_confirm_prompt" msgid="3808984931830229888">"وقتی این وسیله جانبی USB وصل است، <xliff:g id="ACTIVITY">%1$s</xliff:g> باز شود؟"</string>
-    <string name="usb_accessory_uri_prompt" msgid="513450621413733343">"هیچ برنامه کاربردی نصب شده‌ای با این وسیله جانبی USB کار نمیکند. در <xliff:g id="URL">%1$s</xliff:g> درباره این وسیله جانبی اطلاعات بیشتری کسب کنید"</string>
+    <string name="usb_accessory_uri_prompt" msgid="513450621413733343">"هیچ برنامه کاربردی نصب شده‌ای با این وسیله جانبی USB کار نمی‌کند. در <xliff:g id="URL">%1$s</xliff:g> درباره این وسیله جانبی اطلاعات بیشتری کسب کنید"</string>
     <string name="title_usb_accessory" msgid="4966265263465181372">"لوازم جانبی USB"</string>
     <string name="label_view" msgid="6304565553218192990">"مشاهده"</string>
-    <string name="always_use_device" msgid="1450287437017315906">"استفاده به صورت پیش فرض برای این دستگاه USB"</string>
-    <string name="always_use_accessory" msgid="1210954576979621596">"استفاده به صورت پیش فرض برای این دستگاه USB"</string>
+    <string name="always_use_device" msgid="1450287437017315906">"استفاده به صورت پیش‌فرض برای این دستگاه USB"</string>
+    <string name="always_use_accessory" msgid="1210954576979621596">"استفاده به صورت پیش‌فرض برای این دستگاه USB"</string>
     <string name="compat_mode_on" msgid="6623839244840638213">"بزرگنمایی برای پر کردن صفحه"</string>
     <string name="compat_mode_off" msgid="4434467572461327898">"گسترده کردن برای پر کردن صفحه"</string>
     <string name="compat_mode_help_header" msgid="7969493989397529910">"بزرگنمایی سازگاری"</string>
-    <string name="compat_mode_help_body" msgid="4946726776359270040">"اگر یک برنامه برای صفحه کوچک تری طراحی شده باشد، یک کنترل بزرگنمایی توسط ساعت نشان داده می شود."</string>
+    <string name="compat_mode_help_body" msgid="4946726776359270040">"اگر یک برنامه برای صفحه کوچک تری طراحی شده باشد، یک کنترل بزرگنمایی توسط ساعت نشان داده می‌شود."</string>
     <string name="screenshot_saving_ticker" msgid="7403652894056693515">"در حال ذخیره تصویر صفحه..."</string>
     <string name="screenshot_saving_title" msgid="8242282144535555697">"در حال ذخیره تصویر صفحه..."</string>
     <string name="screenshot_saving_text" msgid="2419718443411738818">"تصویر صفحه ذخیره شد."</string>
@@ -69,7 +69,7 @@
     <string name="screenshot_saved_text" msgid="1152839647677558815">"برای مشاهده تصویر صفحه خود، لمس کنید."</string>
     <string name="screenshot_failed_title" msgid="705781116746922771">"تصویر صفحه گرفته نشد."</string>
     <string name="screenshot_failed_text" msgid="8134011269572415402">"تصویر صفحه ذخیره نشد. ممکن است دستگاه ذخیره‌ در حال استفاده باشد."</string>
-    <string name="usb_preference_title" msgid="6551050377388882787">"گزینه های انتقال فایل USB"</string>
+    <string name="usb_preference_title" msgid="6551050377388882787">"گزینه‌های انتقال فایل USB"</string>
     <string name="use_mtp_button_title" msgid="4333504413563023626">"نصب به عنوان دستگاه پخش رسانه (MTP)"</string>
     <string name="use_ptp_button_title" msgid="7517127540301625751">"تصب به عنوان دوربین (PTP)"</string>
     <string name="installer_cd_button_title" msgid="2312667578562201583">"برنامه Android File Transfer را برای Mac نصب کنید"</string>
diff --git a/packages/SystemUI/res/values-sw720dp/config.xml b/packages/SystemUI/res/values-sw720dp/config.xml
index 8af700a..de63d9f 100644
--- a/packages/SystemUI/res/values-sw720dp/config.xml
+++ b/packages/SystemUI/res/values-sw720dp/config.xml
@@ -20,7 +20,7 @@
 <!-- These resources are around just to allow their values to be customized
      for different hardware and product builds. -->
 <resources>
-    <integer name="config_maxNotificationIcons">5</integer>
+    <integer name="status_bar_config_maxNotificationIcons">5</integer>
 
     <!-- Whether we're using the tablet-optimized recents interface (we use this
      value at runtime for some things) -->
diff --git a/packages/SystemUI/res/values-sw720dp/dimens.xml b/packages/SystemUI/res/values-sw720dp/dimens.xml
index 36cbabf..a61fd68 100644
--- a/packages/SystemUI/res/values-sw720dp/dimens.xml
+++ b/packages/SystemUI/res/values-sw720dp/dimens.xml
@@ -17,16 +17,16 @@
 -->
 <resources>
     <!-- size at which Notification icons will be drawn in the status bar -->
-    <dimen name="status_bar_icon_drawing_size">24dip</dimen>
+    <dimen name="system_bar_icon_drawing_size">24dip</dimen>
 
     <!-- opacity at which Notification icons will be drawn in the status bar -->
-    <item type="dimen" name="status_bar_icon_drawing_alpha">100%</item>
+    <item type="dimen" name="system_bar_icon_drawing_alpha">100%</item>
 
     <!-- The width of the view containing non-menu status bar icons -->
-    <dimen name="navigation_key_width">80dip</dimen>
+    <dimen name="system_bar_navigation_key_width">80dip</dimen>
 
     <!-- The width of the view containing the menu status bar icon -->
-    <dimen name="navigation_menu_key_width">80dip</dimen>
+    <dimen name="system_bar_navigation_menu_key_width">80dip</dimen>
 
     <!-- ======================================== -->
     <!-- The following resources were recently moved from sw600dp; there may
diff --git a/packages/SystemUI/res/values-sw720dp/styles.xml b/packages/SystemUI/res/values-sw720dp/styles.xml
index 684258a..e0b1774 100644
--- a/packages/SystemUI/res/values-sw720dp/styles.xml
+++ b/packages/SystemUI/res/values-sw720dp/styles.xml
@@ -16,12 +16,12 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android">
 
-    <style name="StatusBarNotificationText">
+    <style name="SystemBarNotificationText">
         <item name="android:textSize">16sp</item>
         <item name="android:textColor">#ff999999</item>
     </style>
 
-    <style name="StatusBarPanelSettingsRow">
+    <style name="SystemBarPanelSettingsRow">
         <item name="android:paddingRight">16dp</item>
         <item name="android:layout_height">64dp</item>
         <item name="android:layout_width">match_parent</item>
@@ -29,13 +29,13 @@
         <item name="android:background">?android:attr/listChoiceBackgroundIndicator</item>
     </style>
 
-    <style name="StatusBarPanelSettingsIcon">
+    <style name="SystemBarPanelSettingsIcon">
         <item name="android:layout_height">match_parent</item>
         <item name="android:layout_width">64dp</item>
         <item name="android:scaleType">center</item>
     </style>
 
-    <style name="StatusBarPanelSettingsContents">
+    <style name="SystemBarPanelSettingsContents">
         <item name="android:layout_height">wrap_content</item>
         <item name="android:layout_width">0dp</item>
         <item name="android:layout_weight">1</item>
@@ -44,27 +44,27 @@
         <item name="android:textSize">18sp</item>
     </style>
 
-    <style name="StatusBarPanelSettingsPanelSeparator">
+    <style name="SystemBarPanelSettingsPanelSeparator">
         <item name="android:layout_marginRight">0dp</item>
         <item name="android:layout_width">match_parent</item>
         <item name="android:layout_height">1dp</item>
         <item name="android:background">@android:drawable/divider_horizontal_dark</item>
     </style>
 
-    <style name="TextAppearance.StatusBar.Clock" parent="@*android:style/TextAppearance.StatusBar.Icon">
+    <style name="TextAppearance.SystemBar.Clock" parent="@*android:style/TextAppearance.StatusBar.Icon">
         <item name="android:textSize">30dp</item>
         <item name="android:textStyle">normal</item>
         <item name="android:textColor">@android:color/holo_blue_light</item>
     </style>
 
-    <style name="TextAppearance.StatusBar.Expanded.Clock">
+    <style name="TextAppearance.SystemBar.Expanded.Clock" parent="@style/TextAppearance.StatusBar.Expanded.Clock">
         <item name="android:textSize">48dp</item>
         <item name="android:fontFamily">sans-serif-light</item>
         <item name="android:textStyle">normal</item>
         <item name="android:textColor">#ffffff</item>
     </style>
 
-    <style name="TextAppearance.StatusBar.Expanded.Date">
+    <style name="TextAppearance.SystemBar.Expanded.Date" parent="@style/TextAppearance.StatusBar.Expanded.Date">
         <item name="android:textSize">14dp</item>
         <item name="android:textStyle">normal</item>
         <item name="android:textColor">#666666</item>
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
index b1cce2d..cbd8831 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
@@ -231,10 +231,7 @@
                 WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
                     | WindowManager.LayoutParams.FLAG_TOUCHABLE_WHEN_WAKING
                     | WindowManager.LayoutParams.FLAG_SPLIT_TOUCH,
-                // We use a pixel format of RGB565 for the status bar to save memory bandwidth and
-                // to ensure that the layer can be handled by HWComposer.  On some devices the
-                // HWComposer is unable to handle SW-rendered RGBX_8888 layers.
-                PixelFormat.RGB_565);
+                PixelFormat.OPAQUE);
 
         // We explicitly leave FLAG_HARDWARE_ACCELERATED out of the flags.  The status bar occupies
         // very little screen real-estate and is updated fairly frequently.  By using CPU rendering
diff --git a/policy/src/com/android/internal/policy/impl/IconUtilities.java b/policy/src/com/android/internal/policy/impl/IconUtilities.java
index e997355..a47c904 100644
--- a/policy/src/com/android/internal/policy/impl/IconUtilities.java
+++ b/policy/src/com/android/internal/policy/impl/IconUtilities.java
@@ -130,7 +130,7 @@
         int sourceWidth = icon.getIntrinsicWidth();
         int sourceHeight = icon.getIntrinsicHeight();
 
-        if (sourceWidth > 0 && sourceWidth > 0) {
+        if (sourceWidth > 0 && sourceHeight > 0) {
             // There are intrinsic sizes.
             if (width < sourceWidth || height < sourceHeight) {
                 // It's too big, scale it down.
diff --git a/policy/src/com/android/internal/policy/impl/LockPatternKeyguardViewProperties.java b/policy/src/com/android/internal/policy/impl/LockPatternKeyguardViewProperties.java
index 6d3c20a6..5066e3c 100644
--- a/policy/src/com/android/internal/policy/impl/LockPatternKeyguardViewProperties.java
+++ b/policy/src/com/android/internal/policy/impl/LockPatternKeyguardViewProperties.java
@@ -58,7 +58,6 @@
         final IccCardConstants.State simState = mUpdateMonitor.getSimState();
         return (simState == IccCardConstants.State.PIN_REQUIRED
                 || simState == IccCardConstants.State.PUK_REQUIRED
-                || simState == IccCardConstants.State.ABSENT
                 || simState == IccCardConstants.State.PERM_DISABLED);
     }
 
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
index ac74597..2ef048b 100755
--- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
@@ -1032,13 +1032,9 @@
             mHasSystemNavBar = false;
             mNavigationBarCanMove = true;
         } else if (shortSizeDp < 720) {
-            // 600-719dp: "phone" UI with modifications for larger screens
+            // 600+dp: "phone" UI with modifications for larger screens
             mHasSystemNavBar = false;
             mNavigationBarCanMove = false;
-        } else {
-            // 720dp: "tablet" UI with a single combined status & navigation bar
-            mHasSystemNavBar = true;
-            mNavigationBarCanMove = false;
         }
 
         if (!mHasSystemNavBar) {
diff --git a/services/java/com/android/server/AppWidgetServiceImpl.java b/services/java/com/android/server/AppWidgetServiceImpl.java
index 7725f35..77b3b50 100644
--- a/services/java/com/android/server/AppWidgetServiceImpl.java
+++ b/services/java/com/android/server/AppWidgetServiceImpl.java
@@ -836,7 +836,10 @@
             return;
         }
 
-        int bitmapMemoryUsage = views.estimateMemoryUsage();
+        int bitmapMemoryUsage = 0;
+        if (views != null) {
+            bitmapMemoryUsage = views.estimateMemoryUsage();
+        }
         if (bitmapMemoryUsage > mMaxWidgetBitmapMemory) {
             throw new IllegalArgumentException("RemoteViews for widget update exceeds maximum" +
                     " bitmap memory usage (used: " + bitmapMemoryUsage + ", max: " +
diff --git a/services/java/com/android/server/LocationManagerService.java b/services/java/com/android/server/LocationManagerService.java
index 2918dbc..06b056d 100644
--- a/services/java/com/android/server/LocationManagerService.java
+++ b/services/java/com/android/server/LocationManagerService.java
@@ -19,18 +19,13 @@
 import android.app.Activity;
 import android.app.PendingIntent;
 import android.content.BroadcastReceiver;
-import android.content.ComponentName;
 import android.content.ContentQueryMap;
 import android.content.ContentResolver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
-import android.content.ServiceConnection;
-import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.content.pm.Signature;
 import android.content.res.Resources;
 import android.database.Cursor;
 import android.location.Address;
@@ -46,7 +41,6 @@
 import android.location.LocationProvider;
 import android.net.ConnectivityManager;
 import android.net.NetworkInfo;
-import android.net.Uri;
 import android.os.Binder;
 import android.os.Bundle;
 import android.os.Handler;
@@ -58,14 +52,15 @@
 import android.os.RemoteException;
 import android.os.WorkSource;
 import android.provider.Settings;
+import android.provider.Settings.NameValueTable;
 import android.util.Log;
 import android.util.Slog;
 import android.util.PrintWriterPrinter;
 
 import com.android.internal.content.PackageMonitor;
-import com.android.internal.location.GpsNetInitiatedHandler;
 
 import com.android.server.location.GeocoderProxy;
+import com.android.server.location.GeofenceManager;
 import com.android.server.location.GpsLocationProvider;
 import com.android.server.location.LocationProviderInterface;
 import com.android.server.location.LocationProviderProxy;
@@ -95,9 +90,6 @@
     private static final String TAG = "LocationManagerService";
     private static final boolean LOCAL_LOGV = false;
 
-    // The last time a location was written, by provider name.
-    private HashMap<String,Long> mLastWriteTime = new HashMap<String,Long>();
-
     private static final String ACCESS_FINE_LOCATION =
         android.Manifest.permission.ACCESS_FINE_LOCATION;
     private static final String ACCESS_COARSE_LOCATION =
@@ -147,7 +139,7 @@
     private final static String WAKELOCK_KEY = "LocationManagerService";
     private PowerManager.WakeLock mWakeLock = null;
     private int mPendingBroadcasts;
-    
+
     /**
      * List of all receivers.
      */
@@ -179,13 +171,7 @@
      */
     private final WorkSource mTmpWorkSource = new WorkSource();
 
-    // Proximity listeners
-    private Receiver mProximityReceiver = null;
-    private ILocationListener mProximityListener = null;
-    private HashMap<PendingIntent,ProximityAlert> mProximityAlerts =
-        new HashMap<PendingIntent,ProximityAlert>();
-    private HashSet<ProximityAlert> mProximitiesEntered =
-        new HashSet<ProximityAlert>();
+    GeofenceManager mGeofenceManager;
 
     // Last known location for each provider
     private HashMap<String,Location> mLastKnownLocation =
@@ -266,13 +252,6 @@
             throw new IllegalStateException("Request for non-existent listener");
         }
 
-        public PendingIntent getPendingIntent() {
-            if (mPendingIntent != null) {
-                return mPendingIntent;
-            }
-            throw new IllegalStateException("Request for non-existent intent");
-        }
-
         public boolean callStatusChangedLocked(String provider, int status, Bundle extras) {
             if (mListener != null) {
                 try {
@@ -280,11 +259,9 @@
                         // synchronize to ensure incrementPendingBroadcastsLocked()
                         // is called before decrementPendingBroadcasts()
                         mListener.onStatusChanged(provider, status, extras);
-                        if (mListener != mProximityListener) {
-                            // call this after broadcasting so we do not increment
-                            // if we throw an exeption.
-                            incrementPendingBroadcastsLocked();
-                        }
+                        // call this after broadcasting so we do not increment
+                        // if we throw an exeption.
+                        incrementPendingBroadcastsLocked();
                     }
                 } catch (RemoteException e) {
                     return false;
@@ -317,11 +294,9 @@
                         // synchronize to ensure incrementPendingBroadcastsLocked()
                         // is called before decrementPendingBroadcasts()
                         mListener.onLocationChanged(location);
-                        if (mListener != mProximityListener) {
-                            // call this after broadcasting so we do not increment
-                            // if we throw an exeption.
-                            incrementPendingBroadcastsLocked();
-                        }
+                        // call this after broadcasting so we do not increment
+                        // if we throw an exeption.
+                        incrementPendingBroadcastsLocked();
                     }
                 } catch (RemoteException e) {
                     return false;
@@ -357,11 +332,9 @@
                         } else {
                             mListener.onProviderDisabled(provider);
                         }
-                        if (mListener != mProximityListener) {
-                            // call this after broadcasting so we do not increment
-                            // if we throw an exeption.
-                            incrementPendingBroadcastsLocked();
-                        }
+                        // call this after broadcasting so we do not increment
+                        // if we throw an exeption.
+                        incrementPendingBroadcastsLocked();
                     }
                 } catch (RemoteException e) {
                     return false;
@@ -402,6 +375,7 @@
             }
         }
 
+        @Override
         public void onSendFinished(PendingIntent pendingIntent, Intent intent,
                 int resultCode, String resultData, Bundle resultExtras) {
             synchronized (this) {
@@ -424,6 +398,7 @@
         }
     }
 
+    @Override
     public void locationCallbackFinished(ILocationListener listener) {
         //Do not use getReceiver here as that will add the ILocationListener to
         //the receiver list if it is not found.  If it is not found then the
@@ -442,6 +417,7 @@
     }
 
     private final class SettingsObserver implements Observer {
+        @Override
         public void update(Observable o, Object arg) {
             synchronized (mLock) {
                 updateProvidersLocked();
@@ -588,7 +564,7 @@
     }
 
     void systemReady() {
-        // we defer starting up the service until the system is ready 
+        // we defer starting up the service until the system is ready
         Thread thread = new Thread(null, this, "LocationManagerService");
         thread.start();
     }
@@ -616,20 +592,22 @@
         // listen for settings changes
         ContentResolver resolver = mContext.getContentResolver();
         Cursor settingsCursor = resolver.query(Settings.Secure.CONTENT_URI, null,
-                "(" + Settings.System.NAME + "=?)",
+                "(" + NameValueTable.NAME + "=?)",
                 new String[]{Settings.Secure.LOCATION_PROVIDERS_ALLOWED},
                 null);
-        mSettings = new ContentQueryMap(settingsCursor, Settings.System.NAME, true, mLocationHandler);
+        mSettings = new ContentQueryMap(settingsCursor, NameValueTable.NAME, true, mLocationHandler);
         SettingsObserver settingsObserver = new SettingsObserver();
         mSettings.addObserver(settingsObserver);
     }
 
+    @Override
     public void run()
     {
         Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);
         Looper.prepare();
         mLocationHandler = new LocationWorkerHandler();
         initialize();
+        mGeofenceManager = new GeofenceManager(mContext);
         Looper.loop();
     }
 
@@ -690,6 +668,7 @@
         return true;
     }
 
+    @Override
     public List<String> getAllProviders() {
         try {
             synchronized (mLock) {
@@ -715,6 +694,7 @@
         return out;
     }
 
+    @Override
     public List<String> getProviders(Criteria criteria, boolean enabledOnly) {
         try {
             synchronized (mLock) {
@@ -782,6 +762,7 @@
     }
 
     private class LpPowerComparator implements Comparator<LocationProviderInterface> {
+        @Override
         public int compare(LocationProviderInterface l1, LocationProviderInterface l2) {
             // Smaller is better
             return (l1.getPowerRequirement() - l2.getPowerRequirement());
@@ -793,6 +774,7 @@
     }
 
     private class LpAccuracyComparator implements Comparator<LocationProviderInterface> {
+        @Override
         public int compare(LocationProviderInterface l1, LocationProviderInterface l2) {
             // Smaller is better
             return (l1.getAccuracy() - l2.getAccuracy());
@@ -815,6 +797,7 @@
                 (p.supportsSpeed() ? SPEED_SCORE : 0);
         }
 
+        @Override
         public int compare(LocationProviderInterface l1, LocationProviderInterface l2) {
             return (score(l2) - score(l1)); // Bigger is better
          }
@@ -896,6 +879,7 @@
      * @param enabledOnly if true then only a provider that is currently enabled is returned
      * @return name of the provider that best matches the requirements
      */
+    @Override
     public String getBestProvider(Criteria criteria, boolean enabledOnly) {
         List<String> goodProviders = getProviders(criteria, enabledOnly);
         if (!goodProviders.isEmpty()) {
@@ -951,6 +935,7 @@
         return null;
     }
 
+    @Override
     public boolean providerMeetsCriteria(String provider, Criteria criteria) {
         LocationProviderInterface p = mProvidersByName.get(provider);
         if (p == null) {
@@ -988,7 +973,7 @@
         }
 
         ArrayList<Receiver> deadReceivers = null;
-        
+
         ArrayList<UpdateRecord> records = mRecordsByProvider.get(provider);
         if (records != null) {
             final int N = records.size();
@@ -1010,7 +995,7 @@
                 removeUpdatesLocked(deadReceivers.get(i));
             }
         }
-        
+
         if (enabled) {
             p.enable();
             if (listeners > 0) {
@@ -1148,14 +1133,10 @@
                 }
            }
         }
-        for (ProximityAlert alert : mProximityAlerts.values()) {
-            if (alert.mUid == uid) {
-                return true;
-            }
-        }
         return false;
     }
 
+    @Override
     public void requestLocationUpdates(String provider, Criteria criteria,
         long minTime, float minDistance, boolean singleShot, ILocationListener listener) {
         if (criteria != null) {
@@ -1181,6 +1162,20 @@
         }
     }
 
+    void validatePackageName(int uid, String packageName) {
+        if (packageName == null) {
+            throw new SecurityException("packageName cannot be null");
+        }
+        String[] packages = mPackageManager.getPackagesForUid(uid);
+        if (packages == null) {
+            throw new SecurityException("invalid UID " + uid);
+        }
+        for (String pkg : packages) {
+            if (packageName.equals(pkg)) return;
+        }
+        throw new SecurityException("invalid package name");
+    }
+
     void validatePendingIntent(PendingIntent intent) {
         if (intent.isTargetedToPackage()) {
             return;
@@ -1193,6 +1188,7 @@
         //        + intent);
     }
 
+    @Override
     public void requestLocationUpdatesPI(String provider, Criteria criteria,
             long minTime, float minDistance, boolean singleShot, PendingIntent intent) {
         validatePendingIntent(intent);
@@ -1270,6 +1266,7 @@
         }
     }
 
+    @Override
     public void removeUpdates(ILocationListener listener) {
         try {
             synchronized (mLock) {
@@ -1284,6 +1281,7 @@
         }
     }
 
+    @Override
     public void removeUpdatesPI(PendingIntent intent) {
         try {
             synchronized (mLock) {
@@ -1370,6 +1368,7 @@
         }
     }
 
+    @Override
     public boolean addGpsStatusListener(IGpsStatusListener listener) {
         if (mGpsStatusProvider == null) {
             return false;
@@ -1388,6 +1387,7 @@
         return true;
     }
 
+    @Override
     public void removeGpsStatusListener(IGpsStatusListener listener) {
         synchronized (mLock) {
             try {
@@ -1398,6 +1398,7 @@
         }
     }
 
+    @Override
     public boolean sendExtraCommand(String provider, String command, Bundle extras) {
         if (provider == null) {
             // throw NullPointerException to remain compatible with previous implementation
@@ -1417,11 +1418,12 @@
             if (p == null) {
                 return false;
             }
-    
+
             return p.sendExtraCommand(command, extras);
         }
     }
 
+    @Override
     public boolean sendNiResponse(int notifId, int userResponse)
     {
         if (Binder.getCallingUid() != Process.myUid()) {
@@ -1438,223 +1440,11 @@
         }
     }
 
-    class ProximityAlert {
-        final int  mUid;
-        final double mLatitude;
-        final double mLongitude;
-        final float mRadius;
-        final long mExpiration;
-        final PendingIntent mIntent;
-        final Location mLocation;
-
-        public ProximityAlert(int uid, double latitude, double longitude,
-            float radius, long expiration, PendingIntent intent) {
-            mUid = uid;
-            mLatitude = latitude;
-            mLongitude = longitude;
-            mRadius = radius;
-            mExpiration = expiration;
-            mIntent = intent;
-
-            mLocation = new Location("");
-            mLocation.setLatitude(latitude);
-            mLocation.setLongitude(longitude);
-        }
-
-        long getExpiration() {
-            return mExpiration;
-        }
-
-        PendingIntent getIntent() {
-            return mIntent;
-        }
-
-        boolean isInProximity(double latitude, double longitude, float accuracy) {
-            Location loc = new Location("");
-            loc.setLatitude(latitude);
-            loc.setLongitude(longitude);
-
-            double radius = loc.distanceTo(mLocation);
-            return radius <= Math.max(mRadius,accuracy);
-        }
-        
-        @Override
-        public String toString() {
-            return "ProximityAlert{"
-                    + Integer.toHexString(System.identityHashCode(this))
-                    + " uid " + mUid + mIntent + "}";
-        }
-        
-        void dump(PrintWriter pw, String prefix) {
-            pw.println(prefix + this);
-            pw.println(prefix + "mLatitude=" + mLatitude + " mLongitude=" + mLongitude);
-            pw.println(prefix + "mRadius=" + mRadius + " mExpiration=" + mExpiration);
-            pw.println(prefix + "mIntent=" + mIntent);
-            pw.println(prefix + "mLocation:");
-            mLocation.dump(new PrintWriterPrinter(pw), prefix + "  ");
-        }
-    }
-
-    // Listener for receiving locations to trigger proximity alerts
-    class ProximityListener extends ILocationListener.Stub implements PendingIntent.OnFinished {
-
-        boolean isGpsAvailable = false;
-
-        // Note: this is called with the lock held.
-        public void onLocationChanged(Location loc) {
-
-            // If Gps is available, then ignore updates from NetworkLocationProvider
-            if (loc.getProvider().equals(LocationManager.GPS_PROVIDER)) {
-                isGpsAvailable = true;
-            }
-            if (isGpsAvailable && loc.getProvider().equals(LocationManager.NETWORK_PROVIDER)) {
-                return;
-            }
-
-            // Process proximity alerts
-            long now = System.currentTimeMillis();
-            double latitude = loc.getLatitude();
-            double longitude = loc.getLongitude();
-            float accuracy = loc.getAccuracy();
-            ArrayList<PendingIntent> intentsToRemove = null;
-
-            for (ProximityAlert alert : mProximityAlerts.values()) {
-                PendingIntent intent = alert.getIntent();
-                long expiration = alert.getExpiration();
-
-                if ((expiration == -1) || (now <= expiration)) {
-                    boolean entered = mProximitiesEntered.contains(alert);
-                    boolean inProximity =
-                        alert.isInProximity(latitude, longitude, accuracy);
-                    if (!entered && inProximity) {
-                        if (LOCAL_LOGV) {
-                            Slog.v(TAG, "Entered alert");
-                        }
-                        mProximitiesEntered.add(alert);
-                        Intent enteredIntent = new Intent();
-                        enteredIntent.putExtra(LocationManager.KEY_PROXIMITY_ENTERING, true);
-                        try {
-                            synchronized (this) {
-                                // synchronize to ensure incrementPendingBroadcasts()
-                                // is called before decrementPendingBroadcasts()
-                                intent.send(mContext, 0, enteredIntent, this, mLocationHandler,
-                                        ACCESS_FINE_LOCATION);
-                                // call this after broadcasting so we do not increment
-                                // if we throw an exeption.
-                                incrementPendingBroadcasts();
-                            }
-                        } catch (PendingIntent.CanceledException e) {
-                            if (LOCAL_LOGV) {
-                                Slog.v(TAG, "Canceled proximity alert: " + alert, e);
-                            }
-                            if (intentsToRemove == null) {
-                                intentsToRemove = new ArrayList<PendingIntent>();
-                            }
-                            intentsToRemove.add(intent);
-                        }
-                    } else if (entered && !inProximity) {
-                        if (LOCAL_LOGV) {
-                            Slog.v(TAG, "Exited alert");
-                        }
-                        mProximitiesEntered.remove(alert);
-                        Intent exitedIntent = new Intent();
-                        exitedIntent.putExtra(LocationManager.KEY_PROXIMITY_ENTERING, false);
-                        try {
-                            synchronized (this) {
-                                // synchronize to ensure incrementPendingBroadcasts()
-                                // is called before decrementPendingBroadcasts()
-                                intent.send(mContext, 0, exitedIntent, this, mLocationHandler,
-                                        ACCESS_FINE_LOCATION);
-                                // call this after broadcasting so we do not increment
-                                // if we throw an exeption.
-                                incrementPendingBroadcasts();
-                            }
-                        } catch (PendingIntent.CanceledException e) {
-                            if (LOCAL_LOGV) {
-                                Slog.v(TAG, "Canceled proximity alert: " + alert, e);
-                            }
-                            if (intentsToRemove == null) {
-                                intentsToRemove = new ArrayList<PendingIntent>();
-                            }
-                            intentsToRemove.add(intent);
-                        }
-                    }
-                } else {
-                    // Mark alert for expiration
-                    if (LOCAL_LOGV) {
-                        Slog.v(TAG, "Expiring proximity alert: " + alert);
-                    }
-                    if (intentsToRemove == null) {
-                        intentsToRemove = new ArrayList<PendingIntent>();
-                    }
-                    intentsToRemove.add(alert.getIntent());
-                }
-            }
-
-            // Remove expired alerts
-            if (intentsToRemove != null) {
-                for (PendingIntent i : intentsToRemove) {
-                    ProximityAlert alert = mProximityAlerts.get(i);
-                    mProximitiesEntered.remove(alert);
-                    removeProximityAlertLocked(i);
-                }
-            }
-        }
-
-        // Note: this is called with the lock held.
-        public void onProviderDisabled(String provider) {
-            if (provider.equals(LocationManager.GPS_PROVIDER)) {
-                isGpsAvailable = false;
-            }
-        }
-
-        // Note: this is called with the lock held.
-        public void onProviderEnabled(String provider) {
-            // ignore
-        }
-
-        // Note: this is called with the lock held.
-        public void onStatusChanged(String provider, int status, Bundle extras) {
-            if ((provider.equals(LocationManager.GPS_PROVIDER)) &&
-                (status != LocationProvider.AVAILABLE)) {
-                isGpsAvailable = false;
-            }
-        }
-
-        public void onSendFinished(PendingIntent pendingIntent, Intent intent,
-                int resultCode, String resultData, Bundle resultExtras) {
-            // synchronize to ensure incrementPendingBroadcasts()
-            // is called before decrementPendingBroadcasts()
-            synchronized (this) {
-                decrementPendingBroadcasts();
-            }
-        }
-    }
-
+    @Override
     public void addProximityAlert(double latitude, double longitude,
-        float radius, long expiration, PendingIntent intent) {
+            float radius, long expiration, PendingIntent intent, String packageName) {
         validatePendingIntent(intent);
-        try {
-            synchronized (mLock) {
-                addProximityAlertLocked(latitude, longitude, radius, expiration, intent);
-            }
-        } catch (SecurityException se) {
-            throw se;
-        } catch (IllegalArgumentException iae) {
-            throw iae;
-        } catch (Exception e) {
-            Slog.e(TAG, "addProximityAlert got exception:", e);
-        }
-    }
-
-    private void addProximityAlertLocked(double latitude, double longitude,
-        float radius, long expiration, PendingIntent intent) {
-        if (LOCAL_LOGV) {
-            Slog.v(TAG, "addProximityAlert: latitude = " + latitude +
-                    ", longitude = " + longitude +
-                    ", expiration = " + expiration +
-                    ", intent = " + intent);
-        }
+        validatePackageName(Binder.getCallingUid(), packageName);
 
         // Require ability to access all providers for now
         if (!isAllowedProviderSafe(LocationManager.GPS_PROVIDER) ||
@@ -1662,59 +1452,28 @@
             throw new SecurityException("Requires ACCESS_FINE_LOCATION permission");
         }
 
-        if (expiration != -1) {
-            expiration += System.currentTimeMillis();
-        }
-        ProximityAlert alert = new ProximityAlert(Binder.getCallingUid(),
-                latitude, longitude, radius, expiration, intent);
-        mProximityAlerts.put(intent, alert);
+        if (LOCAL_LOGV) Slog.v(TAG, "addProximityAlert: lat=" + latitude + ", long=" + longitude +
+                ", radius=" + radius + ", exp=" + expiration + ", intent = " + intent);
 
-        if (mProximityReceiver == null) {
-            mProximityListener = new ProximityListener();
-            mProximityReceiver = new Receiver(mProximityListener);
-
-            for (int i = mProviders.size() - 1; i >= 0; i--) {
-                LocationProviderInterface provider = mProviders.get(i);
-                requestLocationUpdatesLocked(provider.getName(), 1000L, 1.0f,
-                        false, mProximityReceiver);
-            }
-        }
+        mGeofenceManager.addFence(latitude, longitude, radius, expiration, intent,
+                Binder.getCallingUid(), packageName);
     }
 
+    @Override
     public void removeProximityAlert(PendingIntent intent) {
-        try {
-            synchronized (mLock) {
-               removeProximityAlertLocked(intent);
-            }
-        } catch (SecurityException se) {
-            throw se;
-        } catch (IllegalArgumentException iae) {
-            throw iae;
-        } catch (Exception e) {
-            Slog.e(TAG, "removeProximityAlert got exception:", e);
-        }
+        if (intent == null) throw new NullPointerException("pending intent is null");
+
+        if (LOCAL_LOGV) Slog.v(TAG, "removeProximityAlert: intent = " + intent);
+
+        mGeofenceManager.removeFence(intent);
     }
 
-    private void removeProximityAlertLocked(PendingIntent intent) {
-        if (LOCAL_LOGV) {
-            Slog.v(TAG, "removeProximityAlert: intent = " + intent);
-        }
-
-        mProximityAlerts.remove(intent);
-        if (mProximityAlerts.size() == 0) {
-            if (mProximityReceiver != null) {
-                removeUpdatesLocked(mProximityReceiver);
-            }
-            mProximityReceiver = null;
-            mProximityListener = null;
-        }
-     }
-
     /**
      * @return null if the provider does not exist
      * @throws SecurityException if the provider is not allowed to be
      * accessed by the caller
      */
+    @Override
     public Bundle getProviderInfo(String provider) {
         try {
             synchronized (mLock) {
@@ -1752,6 +1511,7 @@
         return b;
     }
 
+    @Override
     public boolean isProviderEnabled(String provider) {
         try {
             synchronized (mLock) {
@@ -1765,6 +1525,7 @@
         }
     }
 
+    @Override
     public void reportLocation(Location location, boolean passive) {
         if (mContext.checkCallingOrSelfPermission(INSTALL_LOCATION_PROVIDER)
                 != PackageManager.PERMISSION_GRANTED) {
@@ -1787,6 +1548,7 @@
         return isAllowedBySettingsLocked(provider);
     }
 
+    @Override
     public Location getLastKnownLocation(String provider) {
         if (LOCAL_LOGV) {
             Slog.v(TAG, "getLastKnownLocation: " + provider);
@@ -1869,7 +1631,7 @@
         int status = p.getStatus(extras);
 
         ArrayList<Receiver> deadReceivers = null;
-        
+
         // Broadcast location or status to all listeners
         final int N = records.size();
         for (int i=0; i<N; i++) {
@@ -1912,7 +1674,7 @@
                 }
             }
         }
-        
+
         if (deadReceivers != null) {
             for (int i=deadReceivers.size()-1; i>=0; i--) {
                 removeUpdatesLocked(deadReceivers.get(i));
@@ -2024,31 +1786,6 @@
                                     }
                                 }
                             }
-                            ArrayList<ProximityAlert> removedAlerts = null;
-                            for (ProximityAlert i : mProximityAlerts.values()) {
-                                if (i.mUid == uid) {
-                                    if (queryRestart) {
-                                        setResultCode(Activity.RESULT_OK);
-                                        return;
-                                    }
-                                    if (removedAlerts == null) {
-                                        removedAlerts = new ArrayList<ProximityAlert>();
-                                    }
-                                    if (!removedAlerts.contains(i)) {
-                                        removedAlerts.add(i);
-                                    }
-                                }
-                            }
-                            if (removedRecs != null) {
-                                for (int i=removedRecs.size()-1; i>=0; i--) {
-                                    removeUpdatesLocked(removedRecs.get(i));
-                                }
-                            }
-                            if (removedAlerts != null) {
-                                for (int i=removedAlerts.size()-1; i>=0; i--) {
-                                    removeProximityAlertLocked(removedAlerts.get(i).mIntent);
-                                }
-                            }
                         }
                     }
                 }
@@ -2089,6 +1826,10 @@
             // Called by main thread; divert work to LocationWorker.
             Message.obtain(mLocationHandler, MESSAGE_PACKAGE_UPDATED, packageName).sendToTarget();
         }
+        @Override
+        public void onPackageDisappeared(String packageName, int uid) {
+            mGeofenceManager.removeFence(packageName);
+        }
     };
 
     // Wake locks
@@ -2130,10 +1871,12 @@
 
     // Geocoder
 
+    @Override
     public boolean geocoderIsPresent() {
         return mGeocodeProvider != null;
     }
 
+    @Override
     public String getFromLocation(double latitude, double longitude, int maxResults,
             GeocoderParams params, List<Address> addrs) {
         if (mGeocodeProvider != null) {
@@ -2144,6 +1887,7 @@
     }
 
 
+    @Override
     public String getFromLocationName(String locationName,
             double lowerLeftLatitude, double lowerLeftLongitude,
             double upperRightLatitude, double upperRightLongitude, int maxResults,
@@ -2169,9 +1913,10 @@
         if (mContext.checkCallingPermission(ACCESS_MOCK_LOCATION) !=
             PackageManager.PERMISSION_GRANTED) {
             throw new SecurityException("Requires ACCESS_MOCK_LOCATION permission");
-        }            
+        }
     }
 
+    @Override
     public void addTestProvider(String name, boolean requiresNetwork, boolean requiresSatellite,
         boolean requiresCell, boolean hasMonetaryCost, boolean supportsAltitude,
         boolean supportsSpeed, boolean supportsBearing, int powerRequirement, int accuracy) {
@@ -2207,6 +1952,7 @@
         Binder.restoreCallingIdentity(identity);
     }
 
+    @Override
     public void removeTestProvider(String provider) {
         checkMockPermissionsSafe();
         synchronized (mLock) {
@@ -2231,6 +1977,7 @@
         }
     }
 
+    @Override
     public void setTestProviderLocation(String provider, Location loc) {
         checkMockPermissionsSafe();
         synchronized (mLock) {
@@ -2245,6 +1992,7 @@
         }
     }
 
+    @Override
     public void clearTestProviderLocation(String provider) {
         checkMockPermissionsSafe();
         synchronized (mLock) {
@@ -2256,6 +2004,7 @@
         }
     }
 
+    @Override
     public void setTestProviderEnabled(String provider, boolean enabled) {
         checkMockPermissionsSafe();
         synchronized (mLock) {
@@ -2278,6 +2027,7 @@
         }
     }
 
+    @Override
     public void clearTestProviderEnabled(String provider) {
         checkMockPermissionsSafe();
         synchronized (mLock) {
@@ -2293,6 +2043,7 @@
         }
     }
 
+    @Override
     public void setTestProviderStatus(String provider, int status, Bundle extras, long updateTime) {
         checkMockPermissionsSafe();
         synchronized (mLock) {
@@ -2304,6 +2055,7 @@
         }
     }
 
+    @Override
     public void clearTestProviderStatus(String provider) {
         checkMockPermissionsSafe();
         synchronized (mLock) {
@@ -2320,7 +2072,8 @@
             Slog.d(TAG, log);
         }
     }
-    
+
+    @Override
     protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
         if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.DUMP)
                 != PackageManager.PERMISSION_GRANTED) {
@@ -2329,7 +2082,7 @@
                     + ", uid=" + Binder.getCallingUid());
             return;
         }
-        
+
         synchronized (mLock) {
             pw.println("Current Location Manager state:");
             pw.println("  sProvidersLoaded=" + sProvidersLoaded);
@@ -2361,36 +2114,20 @@
                 pw.println("    " + i.getKey() + ":");
                 i.getValue().dump(new PrintWriterPrinter(pw), "      ");
             }
-            if (mProximityAlerts.size() > 0) {
-                pw.println("  Proximity Alerts:");
-                for (Map.Entry<PendingIntent, ProximityAlert> i
-                        : mProximityAlerts.entrySet()) {
-                    pw.println("    " + i.getKey() + ":");
-                    i.getValue().dump(pw, "      ");
-                }
-            }
-            if (mProximitiesEntered.size() > 0) {
-                pw.println("  Proximities Entered:");
-                for (ProximityAlert i : mProximitiesEntered) {
-                    pw.println("    " + i + ":");
-                    i.dump(pw, "      ");
-                }
-            }
-            pw.println("  mProximityReceiver=" + mProximityReceiver);
-            pw.println("  mProximityListener=" + mProximityListener);
+            mGeofenceManager.dump(pw);
             if (mEnabledProviders.size() > 0) {
                 pw.println("  Enabled Providers:");
                 for (String i : mEnabledProviders) {
                     pw.println("    " + i);
                 }
-                
+
             }
             if (mDisabledProviders.size() > 0) {
                 pw.println("  Disabled Providers:");
                 for (String i : mDisabledProviders) {
                     pw.println("    " + i);
                 }
-                
+
             }
             if (mMockProviders.size() > 0) {
                 pw.println("  Mock Providers:");
diff --git a/services/java/com/android/server/accessibility/AccessibilityInputFilter.java b/services/java/com/android/server/accessibility/AccessibilityInputFilter.java
index 8fa6722..fc774d4 100644
--- a/services/java/com/android/server/accessibility/AccessibilityInputFilter.java
+++ b/services/java/com/android/server/accessibility/AccessibilityInputFilter.java
@@ -16,13 +16,12 @@
 
 package com.android.server.accessibility;
 
-import com.android.server.input.InputFilter;
-
 import android.content.Context;
 import android.os.PowerManager;
 import android.util.Slog;
 import android.view.InputDevice;
 import android.view.InputEvent;
+import android.view.InputFilter;
 import android.view.MotionEvent;
 import android.view.WindowManagerPolicy;
 import android.view.accessibility.AccessibilityEvent;
diff --git a/services/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/java/com/android/server/accessibility/AccessibilityManagerService.java
index 5650da8..857334e 100644
--- a/services/java/com/android/server/accessibility/AccessibilityManagerService.java
+++ b/services/java/com/android/server/accessibility/AccessibilityManagerService.java
@@ -58,6 +58,7 @@
 import android.util.Slog;
 import android.util.SparseArray;
 import android.view.IWindow;
+import android.view.IWindowManager;
 import android.view.InputDevice;
 import android.view.KeyCharacterMap;
 import android.view.KeyEvent;
@@ -74,7 +75,6 @@
 import com.android.internal.R;
 import com.android.internal.content.PackageMonitor;
 import com.android.internal.statusbar.IStatusBarService;
-import com.android.server.wm.WindowManagerService;
 
 import org.xmlpull.v1.XmlPullParserException;
 
@@ -157,7 +157,7 @@
 
     private boolean mIsTouchExplorationEnabled;
 
-    private final WindowManagerService mWindowManagerService;
+    private final IWindowManager mWindowManager;
 
     private final SecurityPolicy mSecurityPolicy;
 
@@ -181,8 +181,7 @@
     public AccessibilityManagerService(Context context) {
         mContext = context;
         mPackageManager = mContext.getPackageManager();
-        mWindowManagerService = (WindowManagerService) ServiceManager.getService(
-                Context.WINDOW_SERVICE);
+        mWindowManager = (IWindowManager) ServiceManager.getService(Context.WINDOW_SERVICE);
         mSecurityPolicy = new SecurityPolicy();
         mMainHandler = new MainHanler();
         registerPackageChangeAndBootCompletedBroadcastReceiver();
@@ -583,15 +582,21 @@
      *
      * @param outBounds The output to which to write the bounds.
      */
-    void getActiveWindowBounds(Rect outBounds) {
+    boolean getActiveWindowBounds(Rect outBounds) {
         synchronized (mLock) {
             final int windowId = mSecurityPolicy.mActiveWindowId;
             IBinder token = mWindowIdToWindowTokenMap.get(windowId);
-            mWindowManagerService.getWindowFrame(token, outBounds);
+            try {
+                mWindowManager.getWindowFrame(token, outBounds);
+                return true;
+            } catch (RemoteException re) {
+                /* ignore */
+            }
+            return false;
         }
     }
 
-    int getActiveWindowId() {
+    public int getActiveWindowId() {
         return mSecurityPolicy.mActiveWindowId;
     }
 
@@ -966,13 +971,21 @@
                 if (mInputFilter == null) {
                     mInputFilter = new AccessibilityInputFilter(mContext, this);
                 }
-                mWindowManagerService.setInputFilter(mInputFilter);
+                try {
+                    mWindowManager.setInputFilter(mInputFilter);
+                } catch (RemoteException re) {
+                    /* ignore */
+                }
             }
             return;
         }
         if (mHasInputFilter) {
             mHasInputFilter = false;
-            mWindowManagerService.setInputFilter(null);
+            try {
+                mWindowManager.setInputFilter(null);
+            } catch (RemoteException re) {
+                /* ignore */
+            }
         }
     }
 
@@ -1347,8 +1360,6 @@
                 IAccessibilityInteractionConnectionCallback callback, long interrogatingTid)
                 throws RemoteException {
             final int resolvedWindowId = resolveAccessibilityWindowId(accessibilityWindowId);
-            final int windowLeft;
-            final int windowTop;
             IAccessibilityInteractionConnection connection = null;
             synchronized (mLock) {
                 mSecurityPolicy.enforceCanRetrieveWindowContent(this);
@@ -1361,10 +1372,6 @@
                         return 0;
                     }
                 }
-                IBinder token = mWindowIdToWindowTokenMap.get(resolvedWindowId);
-                mWindowManagerService.getWindowFrame(token, mTempBounds);
-                windowLeft = mTempBounds.left;
-                windowTop = mTempBounds.top;
             }
             final int flags = (mIncludeNotImportantViews) ?
                     AccessibilityNodeInfo.INCLUDE_NOT_IMPORTANT_VIEWS : 0;
@@ -1372,8 +1379,8 @@
             final long identityToken = Binder.clearCallingIdentity();
             try {
                 connection.findAccessibilityNodeInfoByViewId(accessibilityNodeId, viewId,
-                        windowLeft, windowTop, interactionId, callback, flags, interrogatingPid,
-                        interrogatingTid);
+                        interactionId, callback, flags, interrogatingPid, interrogatingTid);
+                return getCompatibilityScale(resolvedWindowId);
             } catch (RemoteException re) {
                 if (DEBUG) {
                     Slog.e(LOG_TAG, "Error findAccessibilityNodeInfoByViewId().");
@@ -1381,7 +1388,7 @@
             } finally {
                 Binder.restoreCallingIdentity(identityToken);
             }
-            return getCompatibilityScale(resolvedWindowId);
+            return 0;
         }
 
         @Override
@@ -1390,8 +1397,6 @@
                 IAccessibilityInteractionConnectionCallback callback, long interrogatingTid)
                 throws RemoteException {
             final int resolvedWindowId = resolveAccessibilityWindowId(accessibilityWindowId);
-            final int windowLeft;
-            final int windowTop;
             IAccessibilityInteractionConnection connection = null;
             synchronized (mLock) {
                 mSecurityPolicy.enforceCanRetrieveWindowContent(this);
@@ -1405,19 +1410,16 @@
                         return 0;
                     }
                 }
-                IBinder token = mWindowIdToWindowTokenMap.get(resolvedWindowId);
-                mWindowManagerService.getWindowFrame(token, mTempBounds);
-                windowLeft = mTempBounds.left;
-                windowTop = mTempBounds.top;
             }
             final int flags = (mIncludeNotImportantViews) ?
                     AccessibilityNodeInfo.INCLUDE_NOT_IMPORTANT_VIEWS : 0;
             final int interrogatingPid = Binder.getCallingPid();
             final long identityToken = Binder.clearCallingIdentity();
             try {
-                connection.findAccessibilityNodeInfosByText(accessibilityNodeId, text, windowLeft,
-                        windowTop, interactionId, callback, flags, interrogatingPid,
+                connection.findAccessibilityNodeInfosByText(accessibilityNodeId, text,
+                        interactionId, callback, flags, interrogatingPid,
                         interrogatingTid);
+                return getCompatibilityScale(resolvedWindowId);
             } catch (RemoteException re) {
                 if (DEBUG) {
                     Slog.e(LOG_TAG, "Error calling findAccessibilityNodeInfosByText()");
@@ -1425,7 +1427,7 @@
             } finally {
                 Binder.restoreCallingIdentity(identityToken);
             }
-            return getCompatibilityScale(resolvedWindowId);
+            return 0;
         }
 
         @Override
@@ -1434,8 +1436,6 @@
                 IAccessibilityInteractionConnectionCallback callback, int flags,
                 long interrogatingTid) throws RemoteException {
             final int resolvedWindowId = resolveAccessibilityWindowId(accessibilityWindowId);
-            final int windowLeft;
-            final int windowTop;
             IAccessibilityInteractionConnection connection = null;
             synchronized (mLock) {
                 mSecurityPolicy.enforceCanRetrieveWindowContent(this);
@@ -1449,10 +1449,6 @@
                         return 0;
                     }
                 }
-                IBinder token = mWindowIdToWindowTokenMap.get(resolvedWindowId);
-                mWindowManagerService.getWindowFrame(token, mTempBounds);
-                windowLeft = mTempBounds.left;
-                windowTop = mTempBounds.top;
             }
             final int allFlags = flags | ((mIncludeNotImportantViews) ?
                     AccessibilityNodeInfo.INCLUDE_NOT_IMPORTANT_VIEWS : 0);
@@ -1460,8 +1456,8 @@
             final long identityToken = Binder.clearCallingIdentity();
             try {
                 connection.findAccessibilityNodeInfoByAccessibilityId(accessibilityNodeId,
-                        windowLeft, windowTop, interactionId, callback, allFlags, interrogatingPid,
-                        interrogatingTid);
+                        interactionId, callback, allFlags, interrogatingPid, interrogatingTid);
+                return getCompatibilityScale(resolvedWindowId);
             } catch (RemoteException re) {
                 if (DEBUG) {
                     Slog.e(LOG_TAG, "Error calling findAccessibilityNodeInfoByAccessibilityId()");
@@ -1469,7 +1465,7 @@
             } finally {
                 Binder.restoreCallingIdentity(identityToken);
             }
-            return getCompatibilityScale(resolvedWindowId);
+            return 0;
         }
 
         @Override
@@ -1478,8 +1474,6 @@
                 IAccessibilityInteractionConnectionCallback callback, long interrogatingTid)
                 throws RemoteException {
             final int resolvedWindowId = resolveAccessibilityWindowId(accessibilityWindowId);
-            final int windowLeft;
-            final int windowTop;
             IAccessibilityInteractionConnection connection = null;
             synchronized (mLock) {
                 mSecurityPolicy.enforceCanRetrieveWindowContent(this);
@@ -1493,18 +1487,15 @@
                         return 0;
                     }
                 }
-                IBinder token = mWindowIdToWindowTokenMap.get(resolvedWindowId);
-                mWindowManagerService.getWindowFrame(token, mTempBounds);
-                windowLeft = mTempBounds.left;
-                windowTop = mTempBounds.top;
             }
             final int flags = (mIncludeNotImportantViews) ?
                     AccessibilityNodeInfo.INCLUDE_NOT_IMPORTANT_VIEWS : 0;
             final int interrogatingPid = Binder.getCallingPid();
             final long identityToken = Binder.clearCallingIdentity();
             try {
-                connection.findFocus(accessibilityNodeId, focusType, windowLeft, windowTop,
-                        interactionId, callback, flags, interrogatingPid, interrogatingTid);
+                connection.findFocus(accessibilityNodeId, focusType, interactionId, callback,
+                        flags, interrogatingPid, interrogatingTid);
+                return getCompatibilityScale(resolvedWindowId);
             } catch (RemoteException re) {
                 if (DEBUG) {
                     Slog.e(LOG_TAG, "Error calling findAccessibilityFocus()");
@@ -1512,7 +1503,7 @@
             } finally {
                 Binder.restoreCallingIdentity(identityToken);
             }
-            return getCompatibilityScale(resolvedWindowId);
+            return 0;
         }
 
         @Override
@@ -1521,8 +1512,6 @@
                 IAccessibilityInteractionConnectionCallback callback, long interrogatingTid)
                 throws RemoteException {
             final int resolvedWindowId = resolveAccessibilityWindowId(accessibilityWindowId);
-            final int windowLeft;
-            final int windowTop;
             IAccessibilityInteractionConnection connection = null;
             synchronized (mLock) {
                 mSecurityPolicy.enforceCanRetrieveWindowContent(this);
@@ -1536,18 +1525,15 @@
                         return 0;
                     }
                 }
-                IBinder token = mWindowIdToWindowTokenMap.get(resolvedWindowId);
-                mWindowManagerService.getWindowFrame(token, mTempBounds);
-                windowLeft = mTempBounds.left;
-                windowTop = mTempBounds.top;
             }
             final int flags = (mIncludeNotImportantViews) ?
                     AccessibilityNodeInfo.INCLUDE_NOT_IMPORTANT_VIEWS : 0;
             final int interrogatingPid = Binder.getCallingPid();
             final long identityToken = Binder.clearCallingIdentity();
             try {
-                connection.focusSearch(accessibilityNodeId, direction, windowLeft, windowTop,
-                        interactionId, callback, flags, interrogatingPid, interrogatingTid);
+                connection.focusSearch(accessibilityNodeId, direction, interactionId, callback,
+                        flags, interrogatingPid, interrogatingTid);
+                return getCompatibilityScale(resolvedWindowId);
             } catch (RemoteException re) {
                 if (DEBUG) {
                     Slog.e(LOG_TAG, "Error calling accessibilityFocusSearch()");
@@ -1555,7 +1541,7 @@
             } finally {
                 Binder.restoreCallingIdentity(identityToken);
             }
-            return getCompatibilityScale(resolvedWindowId);
+            return 0;
         }
 
         @Override
@@ -1833,7 +1819,12 @@
 
         private float getCompatibilityScale(int windowId) {
             IBinder windowToken = mWindowIdToWindowTokenMap.get(windowId);
-            return mWindowManagerService.getWindowCompatibilityScale(windowToken);
+            try {
+                return mWindowManager.getWindowCompatibilityScale(windowToken);
+            } catch (RemoteException re) {
+                /* ignore */
+            }
+            return 1.0f;
         }
     }
 
@@ -1952,18 +1943,25 @@
         }
 
         private int getFocusedWindowId() {
-            // We call this only on window focus change or after touch
-            // exploration gesture end and the shown windows are not that
-            // many, so the linear look up is just fine.
-            IBinder token = mWindowManagerService.getFocusedWindowClientToken();
-            if (token != null) {
-                SparseArray<IBinder> windows = mWindowIdToWindowTokenMap;
-                final int windowCount = windows.size();
-                for (int i = 0; i < windowCount; i++) {
-                    if (windows.valueAt(i) == token) {
-                        return windows.keyAt(i);
+            final long identity = Binder.clearCallingIdentity();
+            try {
+                // We call this only on window focus change or after touch
+                // exploration gesture end and the shown windows are not that
+                // many, so the linear look up is just fine.
+                IBinder token = mWindowManager.getFocusedWindowToken();
+                if (token != null) {
+                    SparseArray<IBinder> windows = mWindowIdToWindowTokenMap;
+                    final int windowCount = windows.size();
+                    for (int i = 0; i < windowCount; i++) {
+                        if (windows.valueAt(i) == token) {
+                            return windows.keyAt(i);
+                        }
                     }
                 }
+            } catch (RemoteException re) {
+                /* ignore */
+            } finally {
+                Binder.restoreCallingIdentity(identity);
             }
             return -1;
         }
diff --git a/services/java/com/android/server/accessibility/TouchExplorer.java b/services/java/com/android/server/accessibility/TouchExplorer.java
index 48c6b2a..ba9f2cd 100644
--- a/services/java/com/android/server/accessibility/TouchExplorer.java
+++ b/services/java/com/android/server/accessibility/TouchExplorer.java
@@ -28,6 +28,7 @@
 import android.os.Handler;
 import android.os.SystemClock;
 import android.util.Slog;
+import android.view.InputFilter;
 import android.view.MotionEvent;
 import android.view.MotionEvent.PointerCoords;
 import android.view.MotionEvent.PointerProperties;
@@ -37,7 +38,6 @@
 import android.view.accessibility.AccessibilityEvent;
 
 import com.android.internal.R;
-import com.android.server.input.InputFilter;
 
 import java.util.ArrayList;
 import java.util.Arrays;
diff --git a/services/java/com/android/server/input/InputManagerService.java b/services/java/com/android/server/input/InputManagerService.java
index bdd0aa4..e7afb1a 100644
--- a/services/java/com/android/server/input/InputManagerService.java
+++ b/services/java/com/android/server/input/InputManagerService.java
@@ -42,8 +42,8 @@
 import android.content.res.TypedArray;
 import android.content.res.XmlResourceParser;
 import android.database.ContentObserver;
-import android.hardware.input.IInputManager;
 import android.hardware.input.IInputDevicesChangedListener;
+import android.hardware.input.IInputManager;
 import android.hardware.input.InputManager;
 import android.hardware.input.KeyboardLayout;
 import android.os.Binder;
@@ -62,6 +62,8 @@
 import android.util.Slog;
 import android.util.SparseArray;
 import android.util.Xml;
+import android.view.IInputFilter;
+import android.view.IInputFilterHost;
 import android.view.InputChannel;
 import android.view.InputDevice;
 import android.view.InputEvent;
@@ -137,7 +139,7 @@
 
     // State for the currently installed input filter.
     final Object mInputFilterLock = new Object();
-    InputFilter mInputFilter; // guarded by mInputFilterLock
+    IInputFilter mInputFilter; // guarded by mInputFilterLock
     InputFilterHost mInputFilterHost; // guarded by mInputFilterLock
 
     private static native int nativeInit(InputManagerService service,
@@ -425,9 +427,9 @@
      *
      * @param filter The input filter, or null to remove the current filter.
      */
-    public void setInputFilter(InputFilter filter) {
+    public void setInputFilter(IInputFilter filter) {
         synchronized (mInputFilterLock) {
-            final InputFilter oldFilter = mInputFilter;
+            final IInputFilter oldFilter = mInputFilter;
             if (oldFilter == filter) {
                 return; // nothing to do
             }
@@ -436,13 +438,21 @@
                 mInputFilter = null;
                 mInputFilterHost.disconnectLocked();
                 mInputFilterHost = null;
-                oldFilter.uninstall();
+                try {
+                    oldFilter.uninstall();
+                } catch (RemoteException re) {
+                    /* ignore */
+                }
             }
 
             if (filter != null) {
                 mInputFilter = filter;
                 mInputFilterHost = new InputFilterHost();
-                filter.install(mInputFilterHost);
+                try {
+                    filter.install(mInputFilterHost);
+                } catch (RemoteException re) {
+                    /* ignore */
+                }
             }
 
             nativeSetInputFilterEnabled(mPtr, filter != null);
@@ -1229,7 +1239,11 @@
     final boolean filterInputEvent(InputEvent event, int policyFlags) {
         synchronized (mInputFilterLock) {
             if (mInputFilter != null) {
-                mInputFilter.filterInputEvent(event, policyFlags);
+                try {
+                    mInputFilter.filterInputEvent(event, policyFlags);
+                } catch (RemoteException e) {
+                    /* ignore */
+                }
                 return false;
             }
         }
@@ -1447,7 +1461,7 @@
     /**
      * Hosting interface for input filters to call back into the input manager.
      */
-    private final class InputFilterHost implements InputFilter.Host {
+    private final class InputFilterHost extends IInputFilterHost.Stub {
         private boolean mDisconnected;
 
         public void disconnectLocked() {
diff --git a/services/java/com/android/server/location/Geofence.java b/services/java/com/android/server/location/Geofence.java
new file mode 100644
index 0000000..f63607a
--- /dev/null
+++ b/services/java/com/android/server/location/Geofence.java
@@ -0,0 +1,100 @@
+/*
+ * Copyright (C) 2012 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.
+ */
+
+
+package com.android.server.location;
+
+import android.location.Location;
+
+/**
+ * Represents a simple circular GeoFence.
+ */
+public class Geofence {
+    public final static int FLAG_ENTER = 0x01;
+    public final static int FLAG_EXIT = 0x02;
+
+    static final int STATE_UNKNOWN = 0;
+    static final int STATE_INSIDE = 1;
+    static final int STATE_OUTSIDE = 2;
+
+    final double mLatitude;
+    final double mLongitude;
+    final float mRadius;
+    final Location mLocation;
+
+    int mState;  // current state
+    double mDistance;  // current distance to center of fence
+
+    public Geofence(double latitude, double longitude, float radius, Location prevLocation) {
+        mState = STATE_UNKNOWN;
+
+        mLatitude = latitude;
+        mLongitude = longitude;
+        mRadius = radius;
+
+        mLocation = new Location("");
+        mLocation.setLatitude(latitude);
+        mLocation.setLongitude(longitude);
+
+        if (prevLocation != null) {
+            processLocation(prevLocation);
+        }
+    }
+
+    /**
+     * Process a new location.
+     * @return FLAG_ENTER or FLAG_EXIT if the fence was crossed, 0 otherwise
+     */
+    public int processLocation(Location location) {
+        mDistance = mLocation.distanceTo(location);
+
+        int prevState = mState;
+        //TODO: inside/outside detection could be made more rigorous
+        boolean inside = mDistance <= Math.max(mRadius, location.getAccuracy());
+        if (inside) {
+            mState = STATE_INSIDE;
+        } else {
+            mState = STATE_OUTSIDE;
+        }
+
+        if (prevState != 0 && mState != prevState) {
+            if (mState == STATE_INSIDE) return FLAG_ENTER;
+            if (mState == STATE_OUTSIDE) return FLAG_EXIT;
+        }
+        return 0;
+    }
+
+    public double getDistance() {
+        return mDistance;
+    }
+
+    @Override
+    public String toString() {
+        String state;
+        switch (mState) {
+            case STATE_INSIDE:
+                state = "IN";
+                break;
+            case STATE_OUTSIDE:
+                state = "OUT";
+                break;
+            default:
+                state = "?";
+        }
+        return String.format("(%.4f, %.4f r=%.0f d=%.0f %s)", mLatitude, mLongitude, mRadius,
+                mDistance, state);
+    }
+}
diff --git a/services/java/com/android/server/location/GeofenceManager.java b/services/java/com/android/server/location/GeofenceManager.java
new file mode 100644
index 0000000..b3f53ea
--- /dev/null
+++ b/services/java/com/android/server/location/GeofenceManager.java
@@ -0,0 +1,242 @@
+/*
+ * Copyright (C) 20012 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.
+ */
+
+package com.android.server.location;
+
+import java.io.PrintWriter;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import android.Manifest.permission;
+import android.app.PendingIntent;
+import android.content.Context;
+import android.content.Intent;
+import android.location.Location;
+import android.location.LocationListener;
+import android.location.LocationManager;
+import android.os.Bundle;
+import android.os.Looper;
+import android.os.PowerManager;
+import android.os.SystemClock;
+
+public class GeofenceManager implements LocationListener, PendingIntent.OnFinished {
+    static final String TAG = "GeofenceManager";
+
+    /**
+     * Assume a maximum land speed, as a heuristic to throttle location updates.
+     * (Air travel should result in an airplane mode toggle which will
+     * force a new location update anyway).
+     */
+    static final int MAX_SPEED_M_S = 100;  // 360 km/hr (high speed train)
+
+    class GeofenceWrapper {
+        final Geofence fence;
+        final long expiry;
+        final String packageName;
+        final PendingIntent intent;
+
+        public GeofenceWrapper(Geofence fence, long expiry, String packageName,
+                PendingIntent intent) {
+            this.fence = fence;
+            this.expiry = expiry;
+            this.packageName = packageName;
+            this.intent = intent;
+        }
+    }
+
+    final Context mContext;
+    final LocationManager mLocationManager;
+    final PowerManager.WakeLock mWakeLock;
+    final Looper mLooper;  // looper thread to take location updates on
+
+    // access to members below is synchronized on this
+    Location mLastLocation;
+    List<GeofenceWrapper> mFences = new LinkedList<GeofenceWrapper>();
+
+    public GeofenceManager(Context context) {
+        mContext = context;
+        mLocationManager = (LocationManager) mContext.getSystemService(Context.LOCATION_SERVICE);
+        PowerManager powerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
+        mWakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
+        mLooper = Looper.myLooper();
+        mLocationManager.requestLocationUpdates(LocationManager.PASSIVE_PROVIDER, 0, 0, this);
+    }
+
+    public void addFence(double latitude, double longitude, float radius, long expiration,
+            PendingIntent intent, int uid, String packageName) {
+        long expiry = SystemClock.elapsedRealtime() + expiration;
+        if (expiration < 0) {
+            expiry = Long.MAX_VALUE;
+        }
+        Geofence fence = new Geofence(latitude, longitude, radius, mLastLocation);
+        GeofenceWrapper fenceWrapper = new GeofenceWrapper(fence, expiry, packageName, intent);
+
+        synchronized (this) {
+            mFences.add(fenceWrapper);
+            updateProviderRequirements();
+        }
+    }
+
+    public void removeFence(PendingIntent intent) {
+        synchronized (this) {
+            Iterator<GeofenceWrapper> iter = mFences.iterator();
+            while (iter.hasNext()) {
+                GeofenceWrapper fenceWrapper = iter.next();
+                if (fenceWrapper.intent.equals(intent)) {
+                    iter.remove();
+                }
+            }
+            updateProviderRequirements();
+        }
+    }
+
+    public void removeFence(String packageName) {
+        synchronized (this) {
+            Iterator<GeofenceWrapper> iter = mFences.iterator();
+            while (iter.hasNext()) {
+                GeofenceWrapper fenceWrapper = iter.next();
+                if (fenceWrapper.packageName.equals(packageName)) {
+                    iter.remove();
+                }
+            }
+            updateProviderRequirements();
+        }
+    }
+
+    void removeExpiredFences() {
+        synchronized (this) {
+            long time = SystemClock.elapsedRealtime();
+            Iterator<GeofenceWrapper> iter = mFences.iterator();
+            while (iter.hasNext()) {
+                GeofenceWrapper fenceWrapper = iter.next();
+                if (fenceWrapper.expiry < time) {
+                    iter.remove();
+                }
+            }
+        }
+    }
+
+    void processLocation(Location location) {
+        List<PendingIntent> enterIntents = new LinkedList<PendingIntent>();
+        List<PendingIntent> exitIntents = new LinkedList<PendingIntent>();
+
+        synchronized (this) {
+            mLastLocation = location;
+
+            removeExpiredFences();
+
+            for (GeofenceWrapper fenceWrapper : mFences) {
+                int event = fenceWrapper.fence.processLocation(location);
+                if ((event & Geofence.FLAG_ENTER) != 0) {
+                    enterIntents.add(fenceWrapper.intent);
+                }
+                if ((event & Geofence.FLAG_EXIT) != 0) {
+                    exitIntents.add(fenceWrapper.intent);
+                }
+            }
+            updateProviderRequirements();
+        }
+
+        // release lock before sending intents
+        for (PendingIntent intent : exitIntents) {
+            sendIntentExit(intent);
+        }
+        for (PendingIntent intent : enterIntents) {
+            sendIntentEnter(intent);
+        }
+    }
+
+    void sendIntentEnter(PendingIntent pendingIntent) {
+        Intent intent = new Intent();
+        intent.putExtra(LocationManager.KEY_PROXIMITY_ENTERING, true);
+        sendIntent(pendingIntent, intent);
+    }
+
+    void sendIntentExit(PendingIntent pendingIntent) {
+        Intent intent = new Intent();
+        intent.putExtra(LocationManager.KEY_PROXIMITY_ENTERING, false);
+        sendIntent(pendingIntent, intent);
+    }
+
+    void sendIntent(PendingIntent pendingIntent, Intent intent) {
+        try {
+            mWakeLock.acquire();
+            pendingIntent.send(mContext, 0, intent, this, null, permission.ACCESS_FINE_LOCATION);
+        } catch (PendingIntent.CanceledException e) {
+            removeFence(pendingIntent);
+            mWakeLock.release();
+        }
+    }
+
+    void updateProviderRequirements() {
+        synchronized (this) {
+            double minDistance = Double.MAX_VALUE;
+            for (GeofenceWrapper alert : mFences) {
+                if (alert.fence.getDistance() < minDistance) {
+                    minDistance = alert.fence.getDistance();
+                }
+            }
+
+            if (minDistance == Double.MAX_VALUE) {
+                disableLocation();
+            } else {
+                int intervalMs = (int)(minDistance * 1000) / MAX_SPEED_M_S;
+                setLocationInterval(intervalMs);
+            }
+        }
+    }
+
+    void setLocationInterval(int intervalMs) {
+        mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, intervalMs, 0, this,
+                mLooper);
+    }
+
+    void disableLocation() {
+        mLocationManager.removeUpdates(this);
+    }
+
+    @Override
+    public void onLocationChanged(Location location) {
+        processLocation(location);
+    }
+
+    @Override
+    public void onStatusChanged(String provider, int status, Bundle extras) { }
+
+    @Override
+    public void onProviderEnabled(String provider) { }
+
+    @Override
+    public void onProviderDisabled(String provider) { }
+
+    @Override
+    public void onSendFinished(PendingIntent pendingIntent, Intent intent, int resultCode,
+            String resultData, Bundle resultExtras) {
+        mWakeLock.release();
+    }
+
+    public void dump(PrintWriter pw) {
+        pw.println("  Geofences:");
+        for (GeofenceWrapper fenceWrapper : mFences) {
+            pw.append("    ");
+            pw.append(fenceWrapper.packageName);
+            pw.append(" ");
+            pw.append(fenceWrapper.fence.toString());
+            pw.append("\n");
+        }
+    }
+}
diff --git a/services/java/com/android/server/wm/AppWindowAnimator.java b/services/java/com/android/server/wm/AppWindowAnimator.java
index 4860f1e..691e2aa 100644
--- a/services/java/com/android/server/wm/AppWindowAnimator.java
+++ b/services/java/com/android/server/wm/AppWindowAnimator.java
@@ -10,10 +10,8 @@
 import android.view.animation.Transformation;
 
 import java.io.PrintWriter;
+import java.util.ArrayList;
 
-/**
- *
- */
 public class AppWindowAnimator {
     static final String TAG = "AppWindowAnimator";
 
@@ -48,12 +46,15 @@
     Animation thumbnailAnimation;
     final Transformation thumbnailTransformation = new Transformation();
 
+    /** WindowStateAnimator from mAppAnimator.allAppWindows as of last performLayout */
+    ArrayList<WindowStateAnimator> mAllAppWinAnimators;
+
     static final Animation sDummyAnimation = new DummyAnimation();
 
-    public AppWindowAnimator(final WindowManagerService service, final AppWindowToken atoken) {
-        mService = service;
+    public AppWindowAnimator(final AppWindowToken atoken) {
         mAppToken = atoken;
-        mAnimator = service.mAnimator;
+        mService = atoken.service;
+        mAnimator = atoken.mAnimator;
     }
 
     public void setAnimation(Animation anim, boolean initialized) {
@@ -255,9 +256,9 @@
 
         transformation.clear();
 
-        final int N = mAppToken.windows.size();
+        final int N = mAllAppWinAnimators.size();
         for (int i=0; i<N; i++) {
-            mAppToken.windows.get(i).mWinAnimator.finishExit();
+            mAllAppWinAnimators.get(i).finishExit();
         }
         mAppToken.updateReportedVisibilityLocked();
 
@@ -266,9 +267,9 @@
 
     boolean showAllWindowsLocked() {
         boolean isAnimating = false;
-        final int NW = mAppToken.allAppWindows.size();
+        final int NW = mAllAppWinAnimators.size();
         for (int i=0; i<NW; i++) {
-            WindowStateAnimator winAnimator = mAppToken.allAppWindows.get(i).mWinAnimator;
+            WindowStateAnimator winAnimator = mAllAppWinAnimators.get(i);
             if (WindowManagerService.DEBUG_VISIBILITY) Slog.v(TAG,
                     "performing show on: " + winAnimator);
             winAnimator.performShowLocked();
diff --git a/services/java/com/android/server/wm/AppWindowToken.java b/services/java/com/android/server/wm/AppWindowToken.java
index 6ecbb8e..13b072c 100644
--- a/services/java/com/android/server/wm/AppWindowToken.java
+++ b/services/java/com/android/server/wm/AppWindowToken.java
@@ -104,7 +104,7 @@
         appToken = _token;
         mInputApplicationHandle = new InputApplicationHandle(this);
         mAnimator = service.mAnimator;
-        mAppAnimator = new AppWindowAnimator(_service, this);
+        mAppAnimator = new AppWindowAnimator(this);
     }
 
     void sendAppVisibilityToClients() {
diff --git a/services/java/com/android/server/wm/WindowAnimator.java b/services/java/com/android/server/wm/WindowAnimator.java
index eb98e7d..0b76fec 100644
--- a/services/java/com/android/server/wm/WindowAnimator.java
+++ b/services/java/com/android/server/wm/WindowAnimator.java
@@ -21,6 +21,7 @@
 import android.view.animation.Animation;
 
 import com.android.internal.policy.impl.PhoneWindowManager;
+import com.android.server.wm.WindowManagerService.AppWindowAnimParams;
 import com.android.server.wm.WindowManagerService.LayoutToAnimatorParams;
 
 import java.io.PrintWriter;
@@ -87,6 +88,8 @@
     WindowState mLowerWallpaperTarget = null;
     WindowState mUpperWallpaperTarget = null;
 
+    ArrayList<AppWindowAnimator> mAppAnimators = new ArrayList<AppWindowAnimator>();
+
     ArrayList<WindowToken> mWallpaperTokens = new ArrayList<WindowToken>();
 
     /** Parameters being passed from this into mService. */
@@ -143,6 +146,11 @@
         synchronized(layoutToAnim) {
             layoutToAnim.mAnimationScheduled = false;
 
+            if (!layoutToAnim.mParamsModified) {
+                return;
+            }
+            layoutToAnim.mParamsModified = false;
+
             if ((layoutToAnim.mChanges & LayoutToAnimatorParams.WALLPAPER_TOKENS_CHANGED) != 0) {
                 layoutToAnim.mChanges &= ~LayoutToAnimatorParams.WALLPAPER_TOKENS_CHANGED;
                 mWallpaperTokens = new ArrayList<WindowToken>(layoutToAnim.mWallpaperTokens);
@@ -173,6 +181,16 @@
                     mDimParams = dimParams;
                 }
             }
+
+            mAppAnimators.clear();
+            final int N = layoutToAnim.mAppWindowAnimParams.size();
+            for (int i = 0; i < N; i++) {
+                final AppWindowAnimParams params = layoutToAnim.mAppWindowAnimParams.get(i);
+                AppWindowAnimator appAnimator = params.mAppAnimator;
+                appAnimator.mAllAppWinAnimators =
+                        new ArrayList<WindowStateAnimator>(params.mWinAnimators);
+                mAppAnimators.add(appAnimator);
+            }
         }
     }
 
@@ -197,11 +215,10 @@
     }
 
     private void updateWindowsAppsAndRotationAnimationsLocked() {
-        final ArrayList<AppWindowToken> appTokens = mService.mAnimatingAppTokens;
         int i;
-        final int NAT = appTokens.size();
+        final int NAT = mAppAnimators.size();
         for (i=0; i<NAT; i++) {
-            final AppWindowAnimator appAnimator = appTokens.get(i).mAppAnimator;
+            final AppWindowAnimator appAnimator = mAppAnimators.get(i);
             final boolean wasAnimating = appAnimator.animation != null
                     && appAnimator.animation != AppWindowAnimator.sDummyAnimation;
             if (appAnimator.stepAnimationLocked(mCurrentTime, mInnerDw, mInnerDh)) {
@@ -373,8 +390,7 @@
                     }
                 }
             }
-            final AppWindowAnimator appAnimator =
-                    atoken == null ? null : atoken.mAppAnimator;
+            final AppWindowAnimator appAnimator = winAnimator.mAppAnimator;
             if (appAnimator != null && appAnimator.thumbnail != null) {
                 if (appAnimator.thumbnailTransactionSeq != mAnimTransactionSequence) {
                     appAnimator.thumbnailTransactionSeq = mAnimTransactionSequence;
@@ -438,8 +454,7 @@
             // If this window's app token is running a detached wallpaper
             // animation, make a note so we can ensure the wallpaper is
             // displayed behind it.
-            final AppWindowAnimator appAnimator =
-                    win.mAppToken == null ? null : win.mAppToken.mAppAnimator;
+            final AppWindowAnimator appAnimator = winAnimator.mAppAnimator;
             if (appAnimator != null && appAnimator.animation != null
                     && appAnimator.animating) {
                 if ((flags & FLAG_SHOW_WALLPAPER) != 0
@@ -495,18 +510,18 @@
     private void testTokenMayBeDrawnLocked() {
         // See if any windows have been drawn, so they (and others
         // associated with them) can now be shown.
-        final ArrayList<AppWindowToken> appTokens = mService.mAnimatingAppTokens;
-        final int NT = appTokens.size();
+        final int NT = mAppAnimators.size();
         for (int i=0; i<NT; i++) {
-            AppWindowToken wtoken = appTokens.get(i);
+            AppWindowAnimator appAnimator = mAppAnimators.get(i);
+            AppWindowToken wtoken = appAnimator.mAppToken;
             final boolean allDrawn = wtoken.allDrawn;
-            if (allDrawn != wtoken.mAppAnimator.allDrawn) {
-                wtoken.mAppAnimator.allDrawn = allDrawn;
+            if (allDrawn != appAnimator.allDrawn) {
+                appAnimator.allDrawn = allDrawn;
                 if (allDrawn) {
                     // The token has now changed state to having all
                     // windows shown...  what to do, what to do?
-                    if (wtoken.mAppAnimator.freezingScreen) {
-                        wtoken.mAppAnimator.showAllWindowsLocked();
+                    if (appAnimator.freezingScreen) {
+                        appAnimator.showAllWindowsLocked();
                         mService.unsetAppFreezingScreenLocked(wtoken, false, true);
                         if (WindowManagerService.DEBUG_ORIENTATION) Slog.i(TAG,
                                 "Setting mOrientationChangeComplete=true because wtoken "
@@ -523,7 +538,7 @@
 
                         // We can now show all of the drawn windows!
                         if (!mService.mOpeningApps.contains(wtoken)) {
-                            mAnimating |= wtoken.mAppAnimator.showAllWindowsLocked();
+                            mAnimating |= appAnimator.showAllWindowsLocked();
                         }
                     }
                 }
diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java
index 719cbe3..4227def 100755
--- a/services/java/com/android/server/wm/WindowManagerService.java
+++ b/services/java/com/android/server/wm/WindowManagerService.java
@@ -45,7 +45,6 @@
 import com.android.server.EventLogTags;
 import com.android.server.Watchdog;
 import com.android.server.am.BatteryStatsService;
-import com.android.server.input.InputFilter;
 import com.android.server.input.InputManagerService;
 import com.android.server.power.PowerManagerService;
 import com.android.server.power.ShutdownThread;
@@ -107,6 +106,7 @@
 import android.view.Display;
 import android.view.Gravity;
 import android.view.IApplicationToken;
+import android.view.IInputFilter;
 import android.view.IOnKeyguardExitResult;
 import android.view.IRotationWatcher;
 import android.view.IWindow;
@@ -648,7 +648,25 @@
     }
     final LayoutFields mInnerFields = new LayoutFields();
 
+    static class AppWindowAnimParams {
+        AppWindowAnimator mAppAnimator;
+        ArrayList<WindowStateAnimator> mWinAnimators;
+
+        public AppWindowAnimParams(final AppWindowAnimator appAnimator) {
+            mAppAnimator = appAnimator;
+
+            final AppWindowToken wtoken = appAnimator.mAppToken;
+            mWinAnimators = new ArrayList<WindowStateAnimator>();
+            final int N = wtoken.allAppWindows.size();
+            for (int i = 0; i < N; i++) {
+                mWinAnimators.add(wtoken.allAppWindows.get(i).mWinAnimator);
+            }
+        }
+    }
+
     static class LayoutToAnimatorParams {
+        boolean mParamsModified;
+
         static final long WALLPAPER_TOKENS_CHANGED = 1 << 0;
         long mChanges;
 
@@ -659,6 +677,7 @@
         WindowState mUpperWallpaperTarget;
         DimAnimator.Parameters mDimParams;
         ArrayList<WindowToken> mWallpaperTokens = new ArrayList<WindowToken>();
+        ArrayList<AppWindowAnimParams> mAppWindowAnimParams = new ArrayList<AppWindowAnimParams>();
     }
     /** Params from WindowManagerService to WindowAnimator. Do not modify or read without first
      * locking on either mWindowMap or mAnimator and then on mLayoutToAnim */
@@ -3050,6 +3069,10 @@
     }
 
     public float getWindowCompatibilityScale(IBinder windowToken) {
+        if (!checkCallingPermission(android.Manifest.permission.RETRIEVE_WINDOW_INFO,
+                "getWindowCompatibilityScale()")) {
+            throw new SecurityException("Requires RETRIEVE_WINDOW_INFO permission.");
+        }
         synchronized (mWindowMap) {
             WindowState windowState = mWindowMap.get(windowToken);
             return (windowState != null) ? windowState.mGlobalScale : 1.0f;
@@ -5171,7 +5194,10 @@
         ShutdownThread.rebootSafeMode(mContext, true);
     }
 
-    public void setInputFilter(InputFilter filter) {
+    public void setInputFilter(IInputFilter filter) {
+        if (!checkCallingPermission(android.Manifest.permission.FILTER_EVENTS, "setInputFilter()")) {
+            throw new SecurityException("Requires FILTER_EVENTS permission");
+        }
         mInputManager.setInputFilter(filter);
     }
 
@@ -6733,8 +6759,11 @@
         }
     }
 
-    // TODO: Put this on the IWindowManagerService and guard with a permission.
-    public IBinder getFocusedWindowClientToken() {
+    public IBinder getFocusedWindowToken() {
+        if (!checkCallingPermission(android.Manifest.permission.RETRIEVE_WINDOW_INFO,
+                "getFocusedWindowToken()")) {
+            throw new SecurityException("Requires RETRIEVE_WINDOW_INFO permission.");
+        }
         synchronized (mWindowMap) {
             WindowState windowState = getFocusedWindowLocked();
             if (windowState != null) {
@@ -6744,8 +6773,11 @@
         }
     }
 
-    // TODO: This is a workaround - remove when 6623031 is fixed.
     public boolean getWindowFrame(IBinder token, Rect outBounds) {
+        if (!checkCallingPermission(android.Manifest.permission.RETRIEVE_WINDOW_INFO,
+                "getWindowFrame()")) {
+            throw new SecurityException("Requires RETRIEVE_WINDOW_INFO permission.");
+        }
         synchronized (mWindowMap) {
             WindowState windowState = mWindowMap.get(token);
             if (windowState != null) {
@@ -7324,50 +7356,9 @@
                 case UPDATE_ANIM_PARAMETERS: {
                     // Used to send multiple changes from the animation side to the layout side.
                     synchronized (mWindowMap) {
-                        final WindowAnimator.AnimatorToLayoutParams animToLayout =
-                                mAnimator.mAnimToLayout;
-                        synchronized (animToLayout) {
-                            animToLayout.mUpdateQueued = false;
-                            boolean doRequest = false;
-                            final int bulkUpdateParams = animToLayout.mBulkUpdateParams;
-                            // TODO(cmautner): As the number of bits grows, use masks of bit groups to
-                            //  eliminate unnecessary tests.
-                            if ((bulkUpdateParams & LayoutFields.SET_UPDATE_ROTATION) != 0) {
-                                mInnerFields.mUpdateRotation = true;
-                                doRequest = true;
-                            }
-                            if ((bulkUpdateParams & LayoutFields.SET_WALLPAPER_MAY_CHANGE) != 0) {
-                                mInnerFields.mWallpaperMayChange = true;
-                                doRequest = true;
-                            }
-                            if ((bulkUpdateParams & LayoutFields.SET_FORCE_HIDING_CHANGED) != 0) {
-                                mInnerFields.mWallpaperForceHidingChanged = true;
-                                doRequest = true;
-                            }
-                            if ((bulkUpdateParams & LayoutFields.SET_ORIENTATION_CHANGE_COMPLETE)
-                                    == 0) {
-                                mInnerFields.mOrientationChangeComplete = false;
-                            } else {
-                                mInnerFields.mOrientationChangeComplete = true;
-                                if (mWindowsFreezingScreen) {
-                                    doRequest = true;
-                                }
-                            }
-                            if ((bulkUpdateParams & LayoutFields.SET_TURN_ON_SCREEN) != 0) {
-                                mTurnOnScreen = true;
-                            }
-
-                            mPendingLayoutChanges |= animToLayout.mPendingLayoutChanges;
-                            if (mPendingLayoutChanges != 0) {
-                                doRequest = true;
-                            }
-
-                            mWindowDetachedWallpaper = animToLayout.mWindowDetachedWallpaper;
-
-                            if (doRequest) {
-                                mH.sendEmptyMessage(CLEAR_PENDING_ACTIONS);
-                                performLayoutAndPlaceSurfacesLocked();
-                            }
+                        if (copyAnimToLayoutParamsLocked()) {
+                            mH.sendEmptyMessage(CLEAR_PENDING_ACTIONS);
+                            performLayoutAndPlaceSurfacesLocked();
                         }
                     }
                     break;
@@ -9109,16 +9100,26 @@
             // Copy local params to transfer params.
             ArrayList<WindowStateAnimator> winAnimators = layoutToAnim.mWinAnimators;
             winAnimators.clear();
-            final int N = mWindows.size();
+            int N = mWindows.size();
             for (int i = 0; i < N; i++) {
                 final WindowStateAnimator winAnimator = mWindows.get(i).mWinAnimator;
                 if (winAnimator.mSurface != null) {
                     winAnimators.add(winAnimator);
                 }
             }
+
             layoutToAnim.mWallpaperTarget = mWallpaperTarget;
             layoutToAnim.mLowerWallpaperTarget = mLowerWallpaperTarget;
             layoutToAnim.mUpperWallpaperTarget = mUpperWallpaperTarget;
+
+            final ArrayList<AppWindowAnimParams> paramList = layoutToAnim.mAppWindowAnimParams;
+            paramList.clear();
+            N = mAnimatingAppTokens.size();
+            for (int i = 0; i < N; i++) {
+                paramList.add(new AppWindowAnimParams(mAnimatingAppTokens.get(i).mAppAnimator));
+            }
+
+            layoutToAnim.mParamsModified = true;
             scheduleAnimationLocked();
         }
     }
@@ -9146,6 +9147,48 @@
         setAnimDimParams(null);
     }
 
+    private boolean copyAnimToLayoutParamsLocked() {
+        boolean doRequest = false;
+        final WindowAnimator.AnimatorToLayoutParams animToLayout = mAnimator.mAnimToLayout;
+        synchronized (animToLayout) {
+            animToLayout.mUpdateQueued = false;
+            final int bulkUpdateParams = animToLayout.mBulkUpdateParams;
+            // TODO(cmautner): As the number of bits grows, use masks of bit groups to
+            //  eliminate unnecessary tests.
+            if ((bulkUpdateParams & LayoutFields.SET_UPDATE_ROTATION) != 0) {
+                mInnerFields.mUpdateRotation = true;
+                doRequest = true;
+            }
+            if ((bulkUpdateParams & LayoutFields.SET_WALLPAPER_MAY_CHANGE) != 0) {
+                mInnerFields.mWallpaperMayChange = true;
+                doRequest = true;
+            }
+            if ((bulkUpdateParams & LayoutFields.SET_FORCE_HIDING_CHANGED) != 0) {
+                mInnerFields.mWallpaperForceHidingChanged = true;
+                doRequest = true;
+            }
+            if ((bulkUpdateParams & LayoutFields.SET_ORIENTATION_CHANGE_COMPLETE) == 0) {
+                mInnerFields.mOrientationChangeComplete = false;
+            } else {
+                mInnerFields.mOrientationChangeComplete = true;
+                if (mWindowsFreezingScreen) {
+                    doRequest = true;
+                }
+            }
+            if ((bulkUpdateParams & LayoutFields.SET_TURN_ON_SCREEN) != 0) {
+                mTurnOnScreen = true;
+            }
+
+            mPendingLayoutChanges |= animToLayout.mPendingLayoutChanges;
+            if (mPendingLayoutChanges != 0) {
+                doRequest = true;
+            }
+
+            mWindowDetachedWallpaper = animToLayout.mWindowDetachedWallpaper;
+        }
+        return doRequest;
+    }
+
     boolean reclaimSomeSurfaceMemoryLocked(WindowStateAnimator winAnimator, String operation,
                                            boolean secure) {
         final Surface surface = winAnimator.mSurface;
diff --git a/services/java/com/android/server/wm/WindowState.java b/services/java/com/android/server/wm/WindowState.java
index e5ec5af..94fd199 100644
--- a/services/java/com/android/server/wm/WindowState.java
+++ b/services/java/com/android/server/wm/WindowState.java
@@ -317,9 +317,6 @@
             mIsFloatingLayer = mIsImWindow || mIsWallpaper;
         }
 
-        mWinAnimator = new WindowStateAnimator(this);
-        mWinAnimator.mAlpha = a.alpha;
-
         WindowState appWin = this;
         while (appWin.mAttachedWindow != null) {
             appWin = appWin.mAttachedWindow;
@@ -335,6 +332,9 @@
         mRootToken = appToken;
         mAppToken = appToken.appWindowToken;
 
+        mWinAnimator = new WindowStateAnimator(this);
+        mWinAnimator.mAlpha = a.alpha;
+
         mRequestedWidth = 0;
         mRequestedHeight = 0;
         mLastRequestedWidth = 0;
diff --git a/services/java/com/android/server/wm/WindowStateAnimator.java b/services/java/com/android/server/wm/WindowStateAnimator.java
index 4649ba2..f08204f 100644
--- a/services/java/com/android/server/wm/WindowStateAnimator.java
+++ b/services/java/com/android/server/wm/WindowStateAnimator.java
@@ -50,8 +50,9 @@
     // Unchanging local convenience fields.
     final WindowManagerService mService;
     final WindowState mWin;
-    final WindowState mAttachedWindow;
+    final WindowStateAnimator mAttachedWinAnimator;
     final WindowAnimator mAnimator;
+    final AppWindowAnimator mAppAnimator;
     final Session mSession;
     final WindowManagerPolicy mPolicy;
     final Context mContext;
@@ -154,7 +155,9 @@
         mAnimDh = service.mAppDisplayHeight;
 
         mWin = win;
-        mAttachedWindow = win.mAttachedWindow;
+        mAttachedWinAnimator = win.mAttachedWindow == null
+                ? null : win.mAttachedWindow.mWinAnimator;
+        mAppAnimator = win.mAppToken == null ? null : win.mAppToken.mAppAnimator;
         mSession = win.mSession;
         mAttrFlags = win.mAttrs.flags;
         mAttrType = win.mAttrs.type;
@@ -185,20 +188,17 @@
 
     /** Is the window or its container currently animating? */
     boolean isAnimating() {
-        final WindowState attached = mAttachedWindow;
-        final AppWindowToken atoken = mWin.mAppToken;
         return mAnimation != null
-                || (attached != null && attached.mWinAnimator.mAnimation != null)
-                || (atoken != null &&
-                        (atoken.mAppAnimator.animation != null
-                                || atoken.inPendingTransaction));
+                || (mAttachedWinAnimator != null && mAttachedWinAnimator.mAnimation != null)
+                || (mAppAnimator != null &&
+                        (mAppAnimator.animation != null
+                                || mAppAnimator.mAppToken.inPendingTransaction));
     }
 
     /** Is the window animating the DummyAnimation? */
     boolean isDummyAnimation() {
-        final AppWindowToken atoken = mWin.mAppToken;
-        return atoken != null
-                && atoken.mAppAnimator.animation == AppWindowAnimator.sDummyAnimation;
+        return mAppAnimator != null
+                && mAppAnimator.animation == AppWindowAnimator.sDummyAnimation;
     }
 
     /** Is this window currently animating? */
@@ -265,8 +265,8 @@
                 //WindowManagerService.this.dump();
             }
             mHasLocalTransformation = false;
-            if ((!mLocalAnimating || mAnimationIsEntrance) && mWin.mAppToken != null
-                    && mWin.mAppToken.mAppAnimator.animation != null) {
+            if ((!mLocalAnimating || mAnimationIsEntrance) && mAppAnimator != null
+                    && mAppAnimator.animation != null) {
                 // When our app token is animating, we kind-of pretend like
                 // we are as well.  Note the mLocalAnimating mAnimationIsEntrance
                 // part of this check means that we will only do this if
@@ -803,12 +803,10 @@
     void computeShownFrameLocked() {
         final boolean selfTransformation = mHasLocalTransformation;
         Transformation attachedTransformation =
-                (mAttachedWindow != null && mAttachedWindow.mWinAnimator.mHasLocalTransformation)
-                ? mAttachedWindow.mWinAnimator.mTransformation : null;
-        final AppWindowAnimator appAnimator =
-                mWin.mAppToken == null ? null : mWin.mAppToken.mAppAnimator;
-        Transformation appTransformation = (appAnimator != null && appAnimator.hasTransformation)
-                ? appAnimator.transformation : null;
+                (mAttachedWinAnimator != null && mAttachedWinAnimator.mHasLocalTransformation)
+                ? mAttachedWinAnimator.mTransformation : null;
+        Transformation appTransformation = (mAppAnimator != null && mAppAnimator.hasTransformation)
+                ? mAppAnimator.transformation : null;
 
         // Wallpapers are animated based on the "real" window they
         // are currently targeting.
@@ -1305,7 +1303,7 @@
                     + (mWin.mAppToken != null ? mWin.mAppToken.hidden : false)
                     + " animating=" + mAnimating
                     + " tok animating="
-                    + (mWin.mAppToken != null ? mWin.mAppToken.mAppAnimator.animating : false), e);
+                    + (mAppAnimator != null ? mAppAnimator.animating : false), e);
         }
         if (mDrawState == READY_TO_SHOW && mWin.isReadyForDisplayIgnoringKeyguard()) {
             if (SHOW_TRANSACTIONS || DEBUG_ORIENTATION)
@@ -1321,7 +1319,7 @@
                         + (mWin.mAppToken != null ? mWin.mAppToken.hidden : false)
                         + " animating=" + mAnimating
                         + " tok animating="
-                        + (mWin.mAppToken != null ? mWin.mAppToken.mAppAnimator.animating : false));
+                        + (mAppAnimator != null ? mAppAnimator.animating : false));
             }
 
             mService.enableScreenIfNeededLocked();
diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeWindowManager.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeWindowManager.java
index 8ab875f..3e56b60 100644
--- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeWindowManager.java
+++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgeWindowManager.java
@@ -23,6 +23,7 @@
 import android.content.res.Configuration;
 import android.graphics.Bitmap;
 import android.graphics.Point;
+import android.graphics.Rect;
 import android.os.IBinder;
 import android.os.IRemoteCallback;
 import android.os.RemoteException;
@@ -31,15 +32,11 @@
 import android.view.Display_Delegate;
 import android.view.Gravity;
 import android.view.IApplicationToken;
+import android.view.IInputFilter;
 import android.view.IOnKeyguardExitResult;
 import android.view.IRotationWatcher;
 import android.view.IWindowManager;
 import android.view.IWindowSession;
-import android.view.InputChannel;
-import android.view.InputDevice;
-import android.view.InputEvent;
-import android.view.KeyEvent;
-import android.view.MotionEvent;
 
 import java.util.List;
 
@@ -455,4 +452,27 @@
     public void lockNow() {
         // TODO Auto-generated method stub
     }
+
+    @Override
+    public IBinder getFocusedWindowToken() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public boolean getWindowFrame(IBinder token, Rect outBounds) {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    @Override
+    public float getWindowCompatibilityScale(IBinder windowToken) throws RemoteException {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+
+    @Override
+    public void setInputFilter(IInputFilter filter) throws RemoteException {
+        // TODO Auto-generated method stub
+    }
 }